HDU1039-Easier Done Than Said?(字符串處理),hdu1039-easierdone
一,題意:
判斷三個條件
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 }
View Code
版權聲明:本文為博主原創文章,未經博主允許不得轉載。