码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1039(字符串判断 **)

时间:2018-08-31 17:21:46      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:std   nbsp   pre   \n   sync   break   数据   除了   pac   

题意是检查一个字符串是否满足三个条件:

一、至少有一个元音字母。二、不能出现三个连续的元音或三个连续的辅音。三、除了 ee 和 oo 外不能出现两个连续相同字母。

若三个条件都能满足,该字符串满足条件,有一个条件不满足则该字符串不满足条件。

但是这道题的数据......一定有元音字母,长度一定不少于 3。省去很多麻烦......

代码如下:

技术分享图片
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int len;
 6     bool f;
 7     std::ios::sync_with_stdio(false);
 8     string s;
 9     while(cin>>s)
10     {
11         if(s=="end") break;
12         len = s.length();
13         f = true;
14 //        if(len==1)
15 //        {
16 //            if(s[0]!=‘a‘&&s[0]!=‘e‘&&s[0]!=‘i‘&&s[0]!=‘o‘&&s[0]!=‘u‘)
17 //            {
18 //                cout << "<" << s << "> is not acceptable.\n";
19 //                continue;
20 //            }
21 //            else
22 //            {
23 //                cout << "<" << s << "> is acceptable.\n";
24 //                continue;
25 //            }
26 //        }
27 //        else if(len==2)
28 //        {
29 //            if((s[0]==s[1]&&s[0]!=‘e‘&&s[0]!=‘o‘)||(s[0]!=‘a‘&&s[0]!=‘e‘&&s[0]!=‘i‘&&s[0]!=‘o‘&&s[0]!=‘u‘&&s[1]!=‘a‘&&s[1]!=‘e‘&&s[1]!=‘i‘&&s[1]!=‘o‘&&s[1]!=‘u‘))
30 //            {
31 //                cout << "<" << s << "> is not acceptable.\n";
32 //                continue;
33 //            }
34 //            else
35 //            {
36 //                cout << "<" << s << "> is acceptable.\n";
37 //                continue;
38 //            }
39 //        }
40 //        else
41         {
42             for(int i = 0; i < len-2; ++i)
43             {
44                 if(s[i]==a||s[i]==e||s[i]==i||s[i]==o||s[i]==u)
45                 {
46                     if(s[i+1]==a||s[i+1]==e||s[i+1]==i||s[i+1]==o||s[i+1]==u)
47                         if(s[i+2]==a||s[i+2]==e||s[i+2]==i||s[i+2]==o||s[i+2]==u)
48                         {
49                             f = false;
50                             break;
51                         }
52                 }
53                 else
54                 {
55                     if(s[i+1]!=a&&s[i+1]!=e&&s[i+1]!=i&&s[i+1]!=o&&s[i+1]!=u)
56                         if(s[i+2]!=a&&s[i+2]!=e&&s[i+2]!=i&&s[i+2]!=o&&s[i+2]!=u)
57                         {
58                             f = false;
59                             break;
60                         }
61                 }
62                 if(s[i]==s[i+1])
63                     if(s[i]!=e&&s[i]!=o)
64                     {
65                         f = false;
66                         break;
67                     }
68             }
69             if(s[len-2] == s[len-1])
70                 if(s[len-1]!=e&&s[len-1]!=o) f = false;
71             if(s[len-3]==a||s[len-3]==e||s[len-3]==i||s[len-3]==o||s[len-3]==u)
72             {
73                 if(s[len-2]==a||s[len-2]==e||s[len-2]==i||s[len-2]==o||s[len-2]==u)
74                     if(s[len-1]==a||s[len-1]==e||s[len-1]==i||s[len-1]==o||s[len-1]==u)
75                         f = false;
76             }
77             else
78             {
79                 if(s[len-2]!=a&&s[len-2]!=e&&s[len-2]!=i&&s[len-2]!=o&&s[len-2]!=u)
80                     if(s[len-1]!=a&&s[len-1]!=e&&s[len-1]!=i&&s[len-1]!=o&&s[len-1]!=u)
81                         f = false;
82             }
83         }
84         if(!f) cout << "<" << s << "> is not acceptable.\n";
85         else cout << "<" << s << "> is acceptable.\n";
86     }
87     return 0;
88 }
View Code

 

HDU 1039(字符串判断 **)

标签:std   nbsp   pre   \n   sync   break   数据   除了   pac   

原文地址:https://www.cnblogs.com/Taskr212/p/9566335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!