您的位置:首页 > 其它

【POJ】:POJ 1575元辅音

2015-10-08 00:45 537 查看

题意

判断一个字符串是否满足下面三个规则:

1.至少有一个元音(a,e,o,i,u)

2.不能出现三个及以上的连续元音或辅音

3.不能出现连续两个相同字母,但ee,oo除外。

如果都满足,就输出accept(按详细格式)

否则输出 not accpet(按详细格式)

解法

没什么特殊的,就是自己写控制函数对字符串进行判断而已。。。

我又错在初始化错了地方啊!!!!!!

很经典的一个地方

int flag=0,trek=0,yuanfu=0; 错在了初始化

代码

代码就不作详细解释了。。。一万个人一万个版本。。。就是翻译那个规则而已。。。

[code]#include <iostream>
#include <string>
using namespace std;
int yuanyin(char a){
    if(a=='a' ||a=='e' ||a=='i'||a=='o'||a=='u') return 1;
    else return 0;
}
int main(){
    string s;
    while(cin>>s && s!="end"){
        int flag=0,trek=0,yuanfu=0;
        for(int i=0;i<s.length();i++){ 
            if((i<s.length()-2 && yuanyin(s[i])&& yuanyin(s[i+1]) && yuanyin(s[i+2])) ||(i<s.length()-2 && yuanyin(s[i])==0&& yuanyin(s[i+1])==0 && yuanyin(s[i+2])==0)){
                yuanfu=1; break;
            }
            if(s[i+1]==s[i]) {
                if(s[i]=='e' ||s[i]=='o') continue;
                trek=1;break; 
            }
            if(yuanyin(s[i])){flag = 1;}
        }
        if(trek==0 && yuanfu==0){
        if(flag==0) {cout<<"<"<<s<<">"<<" is not acceptable."<<endl;}
        else{ cout<<"<"<<s<<">"<<" is acceptable."<<endl; }
        }
        else{
            cout<<"<"<<s<<">"<<" is not acceptable."<<endl;
        }
    }
    return 0;
}


happy coding

seen

欢迎一起探讨知识
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: