题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
// HJ20 密码验证合格程序.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
while (cin >> s)
{
if (s.size() <= 8)
{
cout << "NG" << endl;
continue;
}
int dp[4] = { 0,0,0,0 };
for (auto c : s)
{
if (c == ' ' || c == '\n')
{
cout << "NG" << endl;
continue;
}
if (isdigit(c))
{
dp[0] = 1;
}
else if (isupper(c))
{
dp[1] = 1;
}
else if (islower(c))
{
dp[2] = 1;
}
else
{
dp[3] = 1;
}
}
if ((dp[0] + dp[1] + dp[2] + dp[3]) < 3)
{
cout << "NG" << endl;
continue;
}
int maxlen = 3;
bool flag = false;
for (int i = 0; i < s.size()-maxlen; i++)
{
for (int j = i + maxlen; j <= s.size() - maxlen; j++)//注意末尾重复情况
{
if (0 == s.compare(i, maxlen, s, j, maxlen))
{
flag = true;
break;
}
}
if (flag)
break;
}
if (flag)
{
cout << "NG" << endl;
}
else
{
cout << "OK" << endl;
}
}
return 0;
}

查看12道真题和解析
巨人网络成长空间 113人发布