本文主要是介绍hdu 1039 题目 Easier Done Than Said? (字符串中字符n多条件),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
点击打开链接
#include<stdio.h>
#include<string.h>char s[55];
bool isvol(char c){if(c=='a' || c=='e' || c=='i' || c=='o' || c=='u') return 1;return 0;
}
bool is2(int i,int j) {if(s[i]==s[j] && !((s[i]=='e'&&s[j]=='e')||(s[i]=='o' && s[j]=='o'))) return 1;return 0;
}
int main()
{int f1,f2,f3,i,len;bool vol[55];while(~scanf("%s",s)){if(!strcmp(s,"end"))break;memset(vol,0,sizeof(vol));f1=0;f2=f3=1;len = strlen(s);if(isvol(s[0])) { //判断第一个字符 vol[0] = f1=1;if(len==1) f2=f3=1; //只有一个字母 }if(len>=2 ) {if(len==2) f2=1; //只有2个字符,不可能3个连续元音或辅音 if(isvol(s[1])){ vol[1] = f1 =1; } //判断第二个字符 if(is2(1,0)) f3=0;}for(i=2;i<len;i++){if(isvol(s[i])) { vol[i]=1; f1=1; }if(is2(i,i-1)) { f3=0; break; } //连续两个相同 if( (vol[i-1]&&vol[i-2]&&vol[i])||(!vol[i-1]&&!vol[i-2]&&!vol[i]) ) {// 连续3个元音或辅音 f2=0; break;}}if(f1&&f2&&f3) printf("<%s> is acceptable.\n",s);else printf("<%s> is not acceptable.\n",s);}return 0;
}
这篇关于hdu 1039 题目 Easier Done Than Said? (字符串中字符n多条件)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!