密码验证合格程序
密码验证合格程序
http://www.nowcoder.com/questionTerminal/184edec193864f0985ad2684fbc86841
#include<bits/stdc++.h> using namespace std; int style(string s) { int sty[4] = {0}; for(int i = 0; i < s.size(); i++) { if(s[i] >= '0' && s[i] <= '9') sty[2]++; else if((s[i] >= 'a' && s[i] <= 'z')) sty[0]++; else if((s[i] >= 'A' && s[i] <= 'Z')) sty[1]++; else sty[3]++; } int w = 0; for(int i = 0; i < 4; i++) { if(sty[i] > 0) w++; } return w; } bool right(string s) { for(int i = 0; i < s.size() - 5; i++) { string temp = s.substr(i, 3); string temp1 = s.substr(i + 3, s.size() - i - 3); if(temp1.find(temp) != string::npos) return false; } return true; } int main() { string s; while(cin >> s) { if(s.size() <= 8) { printf("NG\n"); } else { int lei = style(s); if(lei < 3) printf("NG\n"); else { if(right(s)) printf("OK\n"); else printf("NG\n"); } } } return 0; }