map 杭电 1039
来源:互联网 发布:徐老师淘宝叫什么名字 编辑:程序博客网 时间:2024/05/22 01:42
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
< a > is acceptable.
< tv > is not acceptable.
< ptoui > is not acceptable.
< bontres > is not acceptable.
< zoggax > is not acceptable.
< wiinq > is not acceptable.
< eep > is acceptable.
< houctuh> is acceptable.
#include<iostream>#include<algorithm>#include<map>#include<string>#include<cstring>using namespace std;int main(){ map<char ,int >as; as['a']=1; as['e']=1; as['i']=1; as['o']=1; as['u']=1; string a; while(cin>>a) { if(a=="end") break; int i,j,e=0,f=0,k=0; int l=a.length(); for(i=0;i<l;i++) { if(as[a[i]]==1) { e=1; break; } } for(i=0;i<l-2;i++) { if((as[a[i]]==1&&as[a[i+1]]==1&&as[a[i+2]]==1)||((as[a[i]]==0&&as[a[i+1]]==0&&as[a[i+2]]==0))) { f=1; break; } } for(i=0;i<l-1;i++) if(a[i]==a[i+1]) { if(a[i]=='e'||a[i]=='o') continue; k=1; break; } if(e==1&&f==0&&k==0) cout<<"<"<<a<<">"<<" is acceptable."<<endl; else cout<<"<"<<a<<">"<<" is not acceptable."<<endl; }return 0;}
- map 杭电 1039
- 杭电1004 STL map
- 杭电1003 MAP 排序
- 杭电1251(map)
- 杭电 字符串处理 map
- STL 之map 杭电1075
- 杭电1067 Gap(BFS+map)
- 杭电oj 1075 map的使用
- 杭电2094 产生冠军(STL map和set)
- HDU Today(杭电oj2112)(迪杰斯特拉+map)
- 杭电 3172 Virtual Friends【并查集 + map容器】
- 杭电2112HDU Today(map 最短路径)
- 杭电4272 Lianliankan dfs和map的使用
- 【杭电oj】2072 - 单词数(STL - string & map)
- 杭电 hdu 1263 水果 用map容器二维数组
- 【杭电6015】Skip the Class-map-STL
- 杭电 6213 (map) 之 Chinese Zodiac
- HDOJ2072(map简单应用)(杭电ac100题)
- 五大常用算法:分治、动态规划、贪心、回溯和分支界定
- js二级级联
- java 中常量池
- titanic代码注释
- 机器学习 --算法思想梳理
- map 杭电 1039
- UESTC 1339 乱搞
- JNI学习积累之二 ---- 数据类型映射、域描述符说明
- 连接数据库 六大步骤
- 如何重新设置appframework 返回规则
- 我的Spring之旅——(一)构建项目
- 数据结构与算法分析之树的概念总结
- [Python]实现Python脚本转EXE
- 机器学习 之 逻辑回归算法