Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 12751 Accepted Submission(s): 6165
判读条件
1:有元音字母
2:不能三个连续元音或辅音
3.不能连续两个相同的字母,除非ee或oo
下面给出AC代码:
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 char str[25]; 6 int a[25]; 7 while(scanf("%s",str)&&strcmp("end",str)) 8 { 9 int len=strlen(str); 10 int flag=1; 11 int sum=0;//sum 标记元音的个数 12 for(int i=0;i<len;i++) 13 { 14 switch(str[i]) 15 { 16 case ‘a‘: 17 case ‘e‘: 18 case ‘i‘: 19 case ‘o‘: 20 case ‘u‘:a[i]=1;sum++;break; 21 default :a[i]=0; 22 } 23 if(i>0&&str[i]==str[i-1]&&str[i]!=‘e‘&&str[i]!=‘o‘)//2个连续的相同音,排除e/o 24 { 25 flag=0; 26 break; 27 } 28 if(i>1&&a[i]==a[i-1]&&a[i-1]==a[i-2])// 连续三个相连的元音或辅音 注意 i满足的条件, 29 { 30 flag=0; 31 break; 32 } 33 } 34 if(sum&&flag) 35 printf("<%s> is acceptable.\n",str); 36 else printf("<%s> is not acceptable.\n",str); 37 } 38 return 0; 39 }
HDU 1039 Easier Done Than Said?
原文:http://www.cnblogs.com/ECJTUACM-873284962/p/6444731.html