题目链接:http://poj.org/problem?id=1575
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1698
#include <iostream>
#include <string>
#include <cstdio>
#include <fstream>
using namespace std;
int main()
{
string s;
while(cin>>s)
{
if(s=="end") break;
//条件1:必须含有元音
if(s.find("a")>s.size()&&s.find("e")>s.size()&&s.find("i")>s.size()&&s.find("o")>s.size()&&s.find("u")>s.size()){
cout<<"<"<<s<<">"<<" is not acceptable."<<endl;
continue;
}
//条件2:不能包含3个连续元音或3个连续辅音
int a=0,b=0,t;
for(int i=0;i<s.size();i++){
if(s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u'){
if(i==0) a=1;
else if(s[i-1]=='a'||s[i-1]=='e'||s[i-1]=='i'||s[i-1]=='o'||s[i-1]=='u'){
a++;
b=0;
}
else{
a=1;
b=0;
}
}
else{
if(i==0) b=1;
else{
if(s[i-1]!='a'&&s[i-1]!='e'&&s[i-1]!='i'&&s[i-1]!='o'&&s[i-1]!='u'){
b++;
a=0;
}
else{
b=1;
a=0;
}
}
}
if(a==3||b==3){
cout<<"<"<<s<<">"<<" is not acceptable."<<endl;
goto RL;
}
}
//条件3:不能包含两个连续字母,ee和oo除外
for(int i=0;i<s.size();i++){
if(i==0) t=1;
else if(s[i]=='e'||s[i]=='o')
t=0;
else
{
if(s[i]==s[i-1]) t++;
else t=1;
}
if(t==2)
{
cout<<"<"<<s<<">"<<" is not acceptable."<<endl;
goto RL;
}
}
cout<<"<"<<s<<">"<<" is acceptable."<<endl;
RL:
continue;
}
return 0;
}