HDU1039 Easier Done Than Said?

梦里梦外; 2022-06-09 13:12 200阅读 0赞

Problem Description

Password security is a tricky thing. Users prefer simple passwords that are easy to remember (like buddy), but such passwords are often insecure. Some sites use random computer-generated passwords (like xvtpzyo), but users have a hard time remembering them and sometimes leave them written on notes stuck to their computer. One potential solution is to generate “pronounceable” passwords that are relatively secure but still easy to remember.

FnordCom is developing such a password generator. You work in the quality control department, and it’s your job to test the generator and make sure that the passwords are acceptable. To be acceptable, a password must satisfy these three rules:

It must contain at least one vowel.

It cannot contain three consecutive vowels or three consecutive consonants.

It cannot contain two consecutive occurrences of the same letter, except for ‘ee’ or ‘oo’.

(For the purposes of this problem, the vowels are ‘a’, ‘e’, ‘i’, ‘o’, and ‘u’; all other letters are consonants.) Note that these rules are not perfect; there are many common/pronounceable words that are not acceptable.

Input

The input consists of one or more potential passwords, one per line, followed by a line containing only the word ‘end’ that signals the end of the file. Each password is at least one and at most twenty letters long and consists only of lowercase letters.

Output

For each password, output whether or not it is acceptable, using the precise format shown in the example.

Sample Input

a tv ptoui bontres zoggax wiinq eep houctuh

end Sample Output is acceptable. is not acceptable. is not acceptable. is not acceptable. is not acceptable. is not acceptable. is acceptable. is acceptable. Code: #include <iostream> #include <algorithm> #include <stdio.h> #include <cstdlib> #include <cstring> #include <cmath> #include <ctime> #include <ctype.h> using namespace std; int judge(char a) { if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u') return 1; return 0; } int main() { char word[20]; while(scanf("%s",word)!=EOF&&strcmp(word,"end")) { int l=strlen(word),i,flag=0; for(i=0;i<l;i++) { if(judge(word[i])) flag=1; } if(flag==1) { for(i=0;i<l-1;i++) { if(word[i]==word[i+1]&&word[i]!='e'&&word[i]!='o') { flag=2; } } if(flag==2) printf("<%s> is not acceptable.\n",word); else { for(i=0;i<l-2;i++) { if((judge(word[i])&&judge(word[i+1])&&judge(word[i+2]))||(!judge(word[i])&&!judge(word[i+1])&&!judge(word[i+2]))) { flag=3; } } if(flag==3) printf("<%s> is not acceptable.\n",word); else printf("<%s> is acceptable.\n",word); } } else printf("<%s> is not acceptable.\n",word); } return 0; }

发表评论

表情:
评论列表 (有 0 条评论,200人围观)

还没有评论,来说两句吧...

相关阅读

    相关 PAT乙级1039

    1039 到底买不买 (20 分) 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是

    相关 QTTabBar v1039

    v1038已经过去好几年了,突然发现官方竟然发布了1039升级包.....诈尸啊 QTTabBar 是一款 Windows 资源管理器插件,能够给资源管理器增加标签以及扩展标

    相关 2019,Done is better than perfec

    2018年已经结束,很多小伙伴们已经开始计划2019年的目标,当大家兴致勃勃的立下Flag时,往往这个时候就会出现一个“讨厌”的人(或者是自己内心的想法),他会很严肃的问你: