HDU 1039(字符串判断 **)

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

一、至少有一个元音字母。二、不能出现三个连续的元音或三个连续的辅音。三、除了 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 }

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

时间: 2024-10-15 09:02:38

HDU 1039(字符串判断 **)的相关文章

hdu 2721(字符串处理,位运算 暴力)

Persistent Bits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 201    Accepted Submission(s): 116 Problem Description WhatNext Software creates sequence generators that they hope will produce

java 字符串判断是否为空

/** * 方法描述:字符串判断是否为空 * 创建作者:李兴武 * 创建日期:2017-06-22 19:50:01 * * @param str the str * @return the boolean */ public static Boolean isBlank(String str){ if(str!=null) str = str.replaceAll("\r\n|\n\r|\n|\r|\f|\t", ""); if(str==null) return

脚本应用之六:字符串判断&处理函数 【 functions_string1 】

测试系统版本:CentOS 6.4 作用:脚本提供判断和处理字符串的函数,可供其他脚本调用.例如:判断字符串是否都是数字\大小写字母.字符串中字母是否为大\小写以及大小写转换和字符串包含关系判断等. 使用:脚本中调用 "./source functions_string1" 代码专区: #/bin/bash #  LY #  ------------------ #  Copyright 2016.4.14, LingYi ([email protected]) QQ:15199525

java中字符串判断相等能用不等号吗

在项目中有如下语句:Global.NOT_RESTRICT !=companyGroupInfo.getSex()  也就是"NR" != "NR" 返回true(明明应该返回FALSE呀) 字符串在内存中是在字符串池中,如果字符串池已经存在字符串就直接引用地址即可.为什么此时就不行了.经过代码的一番验证发现,如果不涉及数据库,只是java代码对于字符串常量进行操作.Global.NOT_RESTRICT !=companyGroupInfo.getSex() 这一

由一篇吐槽对String空字符串判断的文章所引发的碎碎念

一.起因 最近有篇关于String空字符串判断的文章火了,老是看到这篇文章,既然如此我也只好认真看了下:程序员晒出一段代码引来无数网友狂喷!网友:你就活该当码农! 我也觉得这段代码写的不怎么的,首先程序的正确性应该没有问题,我只是觉得如果写出的代码跟道上认可的规范有违的话可能会恶心到后面接手的人而不自知,我现在莫名打喷嚏的时候就在想肯定是在之前公司写的代码又被接手的人吐槽了- :) 看上去就是个判断字符串是否为空字符串的方法,首先这类方法应该提取到StringUtil类似的工具类中,而这个pri

读取一个文件,给定一个字符串,判断这个字符串在文件中出现的次数

读取一个文件,给定一个字符串,判断这个字符串在文件中出现的次数,面试笔试经常遇到的问题 public class CountStringTest { public static void main(String[] args) { try { //统计E盘下面test.txt中的q字符出现的次数 System.out.println("E盘下面test.txt中的q字符出现的次数为:"); System.err.println(count("E:\\test.txt"

HDU 1039[Easier Done Than Said?] 字符串处理

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1039 题目大意:给一个字符串,看是否符合密码的要求. 规则:1.至少有1个元音字母.2.不能有3个连续的元音字母或辅音字母3.不能有相同的字母连续出现(除了ee,oo) 关键思想:耐心地处理字符串 代码如下: //可优化 #include <iostream> #include <algorithm> #include <string.h> using namespace

字符串 HDU 1039

规则: 1.必须至少包含一个元音字母.a e i o u 2.不能包含三个连续元音或者连续辅音字母. 3.不能包含两个连续字母,除了'ee'和'oo'. PS:字母个数(1<= N <=20). #define _CRT_SECURE_NO_DEPRECATE #include <stdio.h> #include <stdlib.h> #include <string.h> int is_vowel(char strIn) { if(strIn == 'a

hdu 1039 - Easier Done Than Said?

题目:给你一个小写字符串,判断是否安全,安全规则如下: 1.包含元音字母:2.相邻3个元素不能都是元音或辅音:3.连续2个字母相同之能是o或e. 分析:简单题.直接模拟即可. 说明:今天有点累╮(╯▽╰)╭,要学的东西好多( ⊙ o ⊙ )啊! #include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #incl