【问题描述】
小明对类似于 hello 这种单词非常感兴趣,
这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,
第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,
第四段由一个或多个元音字母组成。
给定一个单词,请判断这个单词是否也是这种单词,
如果是请输出yes,否则请输出no。
元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。
【输入格式】
输入一行,包含一个单词,单词中只包含小写英文字母。
【输出格式】
输出答案,或者为yes,或者为no。
【样例输入】
lanqiao
【样例输出】
yes
【样例输入】
world
【样例输出】
no
【评测用例规模与约定】
对于所有评测用例,单词中的字母个数不超过100。
思路:观察题目一步步来即可。
#include <iostream>
#include <string>
using namespace std;
bool is_yuan(char n)
{
if (n == 'a' || n == 'e' || n == 'i' || n == 'o' || n == 'u')
{
return true;
}
else
{
return false;
}
}
int main()
{
string str;
cin >> str;
int l = str.length();
bool f1 = false;
int where1;
for (int i = 1; i < l; i++){
if (is_yuan(str[0])){
break;
}
if (is_yuan(str[i])){
where1 = i;
f1 = true;
break;
}
}
bool f2 = false;
int where2;
for (int i = where1 + 1; i < l; i++){
if (!is_yuan(str[i]) && is_yuan(str[i + 1])){
where2 = i;
f2 = true;
break;
}
}
bool f3 = true;
for (int i = where2 + 1; i < l; i++){
if (!is_yuan(str[i])){
f3 = false;
}
}
if (f1 && f2 && f3){
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
return 0;
}