题目简述:
判断字符串是否同时满足:
1:有元音字母
2:不能三个连续元音或辅音
3.不能连续两个相同的字母,除非ee或oo
end终止输入
AC代码:
#include<iostream>
#include<string>
using namespace std;
int yuan(char c)
{
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
return 1;
return 0;
}
int main()
{
string s;
while (cin >> s)
{
if (s == "end")break;
int conform = 0;
for (int i = 0; i < s.size(); i++) //是否有元音
{
if (yuan(s[i]))
{
conform = 1;
break;
}
}
if (conform)
{
for (int i = 2; i<s.size(); i++) //不能连续三个元音或辅音
{
if (yuan(s[i]) && yuan(s[i - 1]) && yuan(s[i - 2]))
conform = 0;
else if (!yuan(s[i]) && !yuan(s[i - 1]) && !yuan(s[i - 2]))
conform = 0;
}
}
if (conform) //不能连续两个相同的字母,除非ee或oo
{
for (int i = 0; i < s.size()-1; i++)
{
if (s[i] == s[i + 1])
{
if (s[i] != 'e' && s[i] != 'o')
{
conform = 0;
break;
}
}
}
}
if (conform)
cout <<'<' << s << "> is acceptable.\n";
else cout << '<' << s << "> is not acceptable.\n";
}
return 0;
}