HDU1039-Easier Done Than Said?(字符串处理)
一,题意:
判断三个条件
1:有元音字母
2:不能三个连续元音或辅音
3:不能连续两个相同的字母,除非ee或oo
二,思路
写函数一个条件一个条件去判断
1 #include<iostream>
2 #include<cstring>
3 using namespace std;
4
5 //判断是否为元音
6 bool isyuan(char a){
7 if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u')
8 return true;
9 return false;
10 }
11
12 //判断第一个条件是否满足
13 int judge1(char a[] , int len){
14 for(int i = 0 ; i < len ; i++){
15 if(yuan(a[i]))
16 return 1;
17 }
18 return 0;
19 }
20
21 //判断第二个条件是否满足
22 int judge2(char a[] , int len){
23 for(int i = 0 ; i < len - 2 ; i++){
24 if((isyuan(a[i])&&isyuan(a[i+1])&&isyuan(a[i+2]))||(!isyuan(a[i])&&!isyuan(a[i+1])&&!isyuan(a[i+2])))
25 return 0 ;
26 }
27 return 1;
28 }
29
30 //判断第三个条件是否成立
31 int judge3(char a[] , int len){
32 for(int i = 0 ; i < len - 1 ; i++){
33 if(a[i]==a[i+1]&&a[i]!='o'&&a[i]!='e')
34 return 0 ;
35 }
36 return 1;
37 }
38
39 int main(){
40 char arr[100];
41 while(cin>>arr&&strcmp(arr,"end")){
42 int len = strlen(arr);
43 int k1 = judge1(arr,len);
44 int k2 = judge2(arr,len);
45 int k3 = judge3(arr,len);
46 //当三个条件都满足时
47 if(k1==1&&k2==1&&k3==1)
48 cout<<"<"<<arr<<"> "<<"is acceptable."<<endl;
49 else
50 cout<<"<"<<arr<<"> "<<"is not acceptable."<<endl;
51 }
52 return 0;
53 }
版权声明:本文为博主原创文章,未经博主允许不得转载。