题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
#include <algorithm> #include <bits/stdc++.h> #include <vector> using namespace std; int main() { string password; while(cin>>password){ if(password.size()<8){ cout<<"NG"<<endl; continue; } int a=0; int A=0; int number=0; int others=0; for (auto& ch:password) { if (ch>='a'&&ch<='z') { a = 1; }else if (ch>='A'&&ch<='Z') { A = 1; }else if (isdigit(ch)) { number = 1; }else { others = 1; } } if (a + A + number + others <3) { cout << "NG"<<endl; continue; } vector<vector<int>> dp(password.size()+1, vector<int>(password.size()+1,0)); int maxLen = 0; for (int i=1; i<=password.size(); i++) { for (int j=1; j<=password.size(); j++) { if(j!=i&&password[i]==password[j]){ dp[i][j]=dp[i-1][j-1] + 1; maxLen = max(maxLen, dp[i][j]); }else { dp[i][j]=0; } } } if(maxLen>2){ cout << "NG"<<endl; continue; } cout<<"OK"<<endl; } } // 64 位输出请用 printf("%lld")