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 is another 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.
InputThe 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 <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cctype>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <sstream>
#include<iomanip>
using namespace std;
typedef long long ll;
#define inf int(0x3f3f3f3f)
#define mod int(1e9+7)
#define pi acos(-1)
int main()
{
int n;
char s[150];
scanf("%d",&n);
memset(s,-1,sizeof(s));
scanf("%s",s);
for(int i=0;i<n;i++)
{
if(s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u'||s[i]=='y')
{
for(int j=i+1;j<n;j++)
{
if(s[j]==-1) continue;
else if(s[j]=='a'||s[j]=='e'||s[j]=='i'||s[j]=='o'||s[j]=='u'||s[j]=='y')
{
s[j]=-1;
continue;
}
else
break;
}
}
}
for(int i=0;i<n;i++)
{
if(s[i]!=-1) printf("%c",s[i]);
}
printf("\n");
return 0;
}
c++的写法走一波!
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cctype>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <sstream>
#include<iomanip>
using namespace std;
typedef long long ll;
#define inf int(0x3f3f3f3f)
#define mod int(1e9+7)
#define pi acos(-1)
#define N 1000000005
map<char,int>mp;
void init()
{
mp['a']=1; mp['e']=1;
mp['i']=1; mp['o']=1;
mp['u']=1; mp['y']=1;
}
int main()
{
int n;
scanf("%d",&n);
init();
string str;
cin>>str;
for(int i=0;i<n-1;i++)
{
if(mp[str[i]]&&mp[str[i+1]])
{
for(int j=i+1;j<n-1;j++)
{
str[j]=str[j+1];
}
str.erase(str.end()-1);
n--;
i--;
}
}
cout<<str<<endl;
return 0;
}