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.
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 the word s after the correction.
5 weird
werd
4 word
word
5 aaeaa
a
Explanations of the examples:
- There is only one replace: weird
werd;
- No replace needed since there are no two consecutive vowels;
- aaeaa
aeaa
aaa
aa
a.
题意:给定一个字符串,要求当有两个连续的元音字母时去掉第二个。求最终的字符串。
代码如下:
#include <bits/stdc++.h>
using namespace std;
int a[110];
bool check(int x)
{
if (x==0||x=='e'-'a'||x=='i'-'a'||x=='o'-'a'||x=='u'-'a'||x=='y'-'a')
return true;
return false;
}
int main()
{
int n;
while (~scanf("%d",&n)){
char c;
for (int i=0;i<n;i++){
scanf(" %c",&c);
a[i]=c-'a';
}
int pos=0;
for (int i=1;i<n;i++){
if (check(a[i])&&check(a[pos]))
a[i]=-1;
else
pos=i;
}
for (int i=0;i<n;i++){
if (a[i]!=-1)
printf("%c",a[i]+'a');
}
printf("\n");
}
return 0;
}