传送门:戳我
题目大意:有些人嫌弃自动生成的密码不好记,于是就想用能发音的密码方便记忆。然后给了你一套判断怎么样的密码是合法的的方法,按照要求对密码进行判断就行了。
思路:模拟嘛,照着题目敲,逻辑清楚点就好了。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
string s,ss;
int main(){
getline(cin,ss);
while (ss!="end"){
int flag=1;
s=ss+' ';
int cnt=0,yof=0;
for (int i=0;i<s.length()-1;i++){
if (s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u'){
flag=0;
if (yof==1) cnt++;
if (yof==2) {cnt=1;yof=1;}
if (yof==0) {yof=1;cnt=1;}
if (cnt>=3) {
flag=1;
break;
}
}
else {
if (yof==2) cnt++;
if (yof==1) {cnt=1;yof=2;}
if (yof==0) {cnt=1;yof=2;}
if (cnt>=3){
flag=1;
break;
}
}
if (s[i]==s[i+1]){
if (s[i]!='e' && s[i]!='o'){
flag=1;
break;
}
}
}
if (flag){
cout<<"<"<<ss<<"> is not acceptable.\n";
}
else {
cout<<"<"<<ss<<"> is acceptable.\n";
}
getline(cin,ss);
}
return 0;
}