题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#include <iostream>
#include<set>
using namespace std;
bool test(string s){
if(s.length()<9) return false;
set<string> st;
for(char c:s){
if(c==' ') continue;
else if(c>='0'&&c<='9') st.insert("number");
else if(c>='a'&&c<='z') st.insert("alpha");
else if(c>='A'&&c<='Z') st.insert("ALPHA");
else st.insert("other");
}
if(st.size()<3) return false;
st.clear();
//关键在这步,利用集合判重
for(int i=2;i<s.length();i++){
string now=s.substr(i-2,3);
if(st.count(now)>0){
return false;
}
st.insert(now);
}
return true;
}
int main() {
string s;
while(getline(cin,s)){
if(test(s)) cout<<"OK"<<endl;
else cout<<"NG"<<endl;
}
return 0;
}
// 64 位输出请用 printf("%lld")
查看21道真题和解析
京东工作强度 428人发布