您的位置:首页 > 大数据 > 人工智能

hdu 1039 Easier Done Than Said?

2016-04-08 20:29 471 查看
1:有元音字母

2:不能三个连续元音或辅音

3.不能连续两个相同的字母,除非ee或oo

做的时候注意到了一个曾经一直没有意识到的问题,string.size()返回的是无符号整形。

#include<iostream>
#include<cstring>
using namespace std;
int f(char x)
{
if(x=='a'||x=='e'||x=='i'||x=='o'||x=='u') return 1;
else return 0;
}
int main()
{
string str;
while(cin>>str)
{
if(str=="end") break;
int flag=0;
//有元音字母
for(int i=0;i<str.size();i++)
{
if(f(str[i]))
{
flag=1;
break;
}
}
//	cout<<int(str.size())-3<<endl;
for(int i=0;i<int(str.size())-2;i++)
{
//cout<<str[i]<<str[i+1]<<str[i+2]<<endl;
if(f(str[i])==1&&f(str[i+1])==1&&f(str[i+2])==1)
{
flag=0;
break;
}
if(f(str[i])!=1&&f(str[i+1])!=1&&f(str[i+2])!=1)
{
flag=0;
break;
}
}
for(int i=0;i<int(str.size())-1;i++)
{
if(str[i]==str[i+1])
{
if(str[i]!='e'&&str[i]!='o')
{
flag=0;
break;
}
}
}
if(flag) cout<<"<"<<str<<">"<<" is acceptable."<<endl;
else cout<<"<"<<str<<">"<<" is not acceptable."<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: