Content
有一个长度为 \(n\) 的,只包含小写字母的字符串,只要有两个元音字母相邻,就得删除后一个元音字母(\(\texttt{a,e,i,o,u,y}\) 中的一个),请求出最后得到的字符串。
数据范围:\(1\leqslant n\leqslant 100\)。
Solution
我们遍历字符串,判断当前扫到的字符是否是元音字母,这样好在遍历到下一个字母时判断是否需要删除,不需要的话直接输出当前字符就好。
Code
string s;
int vowel = 0, n;
int main() {
getint(n);
cin >> s;
_for(i, 0, n - 1) {
if((s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u' || s[i] == 'y') && vowel) continue;
printf("%c", s[i]);
vowel = (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u' || s[i] == 'y');
}
return 0;
}