一天,QAQ 得到了一种只包含大小写字母,且满足元音字母 (‘A a’, ‘E e’, ‘I i’, ‘O o’, ‘U u’) 和辅音字母(非元音字母)交替出现的字符串。被这种优美的性质所迷倒的 QAQ 决定将这类字符串命名为「厉害了我的金桔串」。
现在,QAQ 得到了一堆字符串,他想知道有哪些字符串是「厉害了我的金桔串」。
输入数据有多组(数据组数不超过 100),到 EOF 结束。
每组输入为一行,包含一个字符串(字符串中只含有大小写英文字母,长度大于 1 且不超过 15)。
对于每组输入,如果这个字符串是「厉害了我的金桔串」,则在一行中输出 “Yes”,否则输出 “No”(不包括引号)。
Sample Input
QAQ
United
rehabilitative
abc
Sample Output
Yes
Yes
Yes
No
#include <stdio.h>
int Judge(char ch) { // 判断是否为元音字母
if(ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u')
return 1;
else return 0;
}
int main() {
char s[1001];
while(~ scanf("%s", s)) {
for(int i=0; s[i]; ++i) { // 全部转小写
if(s[i]>='A' && s[i]<='Z')
s[i] += 32;
}
int ok = 1; // 默认为是金桔串
int last, type; // last 为上一个字符的字母类型,type 为当前的类型
if(Judge(s[0])) last = 0; // 预处理第一个字符
else last = 1;
for(int i=1; s[i]; ++i) {
if(Judge(s[i])) type = 0;
else type = 1;
if(last != type) last = type; // 如果两次不同,则更新 last
else { // 否则直接跳出
ok = 0;
break;
}
}
if(ok) printf("Yes\n");
else printf("No\n");
}
return 0;
}