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  } 
View Code

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/My-Sunshine/p/4909523.html