题解 | #密码验证合格程序#

密码验证合格程序

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;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务