A. Word Correction
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Victor tries to write his own text editor, with word correction included. However, the rules of word correction are really strange.

Victor thinks that if a word contains two consecutive vowels, then it's kinda weird and it needs to be replaced. So the word corrector works in such a way: as long as there are two consecutive vowels in the word, it deletes the first vowel in a word such that there isanother vowel right before it. If there are no two consecutive vowels in the word, it is considered to be correct.

You are given a word s. Can you predict what will it become after correction?

In this problem letters a, e, i, o, u and y are considered to be vowels.

Input

The first line contains one integer n (1 ≤ n ≤ 100) — the number of letters in word s before the correction.

The second line contains a string s consisting of exactly n lowercase Latin letters — the word before the correction.

Output

Output the word s after the correction.

Examples
input

Copy
5
weird
output
werd
input

Copy
4
word
output
word
input

Copy
5
aaeaa
output
a
Note

Explanations of the examples:

  1. There is only one replace: weird  werd;
  2. No replace needed since there are no two consecutive vowels;
  3. aaeaa  aeaa  aaa  aa  a.

题目大意:给一个字符串,如果有两个连续的元音字母,则删掉后一个,一直进行这种操作,求最后的字符串.

分析:一个一个去枚举删就比较麻烦了,一个比较好的做法是用栈维护,枚举第i个位置,与栈顶的字符比较,看是否符合要求.最后输出栈里的字符串就好了.

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include <cmath> using namespace std; typedef long long LL; char s[],ans[];
int tot,n; bool check(char a,char b)
{
bool flag1 = false,flag2 = false;
if (a == 'a' || a == 'e' || a == 'i' || a == 'o' || a == 'u' || a == 'y')
flag1 = true;
if (b == 'a' || b == 'e' || b == 'i' || b == 'o' || b == 'u' || b == 'y')
flag2 = true;
if (flag1 && flag2)
return true;
return false;
} int main()
{
scanf("%d",&n);
scanf("%s",s + );
for (int i = ; i <= n; i++)
{
if (!tot)
ans[++tot] = s[i];
else
{
if (!check(ans[tot],s[i]))
ans[++tot] = s[i];
}
}
for (int i = ; i <= tot; i++)
printf("%c",ans[i]); return ;
}

最新文章

  1. SQL SERVER全面优化-------索引有多重要?
  2. 从Eclipse迁移到Android Studio碰到的问题记录
  3. MDX函数(官方顺序,带示例)
  4. MySQL学习笔记——基本语法
  5. Apache HTTP Server多个拒绝服务漏洞
  6. 设置Tomcat应用自动部署目录
  7. 将从网上下载下来的javaweb项目继续配置
  8. 如何 查看 WebLogic Server的版本号[转]
  9. ASP.NETURL地址防注入过滤问题
  10. POJ 2109 :Power of Cryptography
  11. 【转】S3C2440存储系统-SDRAM驱动
  12. LeetCode编程训练 - 折半查找(Binary Search)
  13. 使用Lifecycle管理Tomcat中组件的生命周期
  14. MongoDB 字符串值长度条件查询
  15. Metrics.NET step by step使用Metrics监控应用程序的性能
  16. putty 显示 ubuntu的文件乱码
  17. HDU 2147 kiki&#39;s game (奇偶博弈)
  18. c# 简易绘制C语言头文件包含关系图 v2.0
  19. ORACLE中Drop table cascade constraints之后果.
  20. 为什么要用Markov chain Monte Carlo (MCMC)

热门文章

  1. 干货!一篇文章集合所有Linux基础命令,适合所有菜鸟学习和老手回顾!
  2. dts--framework(三)
  3. 完善压缩处理类(支持主流的图像类型(jpg、png、gif)
  4. Python常用函数记录
  5. 25-IHostEnvironment和 IApplicationLifetime介绍
  6. Java集合——LinkedHashMap源码详解
  7. RelativeLayout 深入理解
  8. 让菜鸡讲一讲网络流(isap)
  9. java编程-无锁初始化
  10. Git上手:Git扫盲区