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

密码验证合格程序

http://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841

注意代码规范,自己写的(仅供参考)

#include <bits/stdc++.h>
using namespace std;
bool chongFu (string str) {
	int n = str.size();
	set<string> rec;
	for (int i = 0; i < n - 2; i++) {
		for (int j = i + 2; j < n; j++) {
			string s = str.substr(i, j - i + 1);
			auto it = rec.find(s);
			if (it == rec.end()) {
				rec.insert(s);
			} else {
				if (str[i - 1] == str[i + 1])
					continue;
				else
					return false;
			}
		}
	}
	return true;
}
int main () {
	vector<string> str;
	string s;
	while (cin >> s) {
		str.push_back(s);
	}
	for (string it : str) {
		int n = it.size();
		vector<int> num(4, 0);

		if (n > 8) {
			if (!chongFu(it)) {
				cout << "NG" << endl;
				continue;
			}
			for (int i = 0; i < n; i++) {
				if (it[i] == ' ') {
					cout << "NG" << endl;
				} else if (it[i] >= '0' && it[i] <= '9') {
					num[0] = 1;
				} else if (it[i] >= 'a' && it[i] <= 'z') {
					num[1] = 1;
				} else if (it[i] >= 'A' && it[i] <= 'Z') {
					num[2] = 1;
				} else {
					//cout << it[i] << endl;
					num[3] = 1;
				}
			}
			if (num[0] + num[1] + num[2] + num[3] >= 3) {
				cout << "OK" <<endl;
			} else
				cout << "NG" << endl;
		} 
		else {
			cout << "NG" << endl;
		}
		//cout << it <<endl;
	}
	return 0;
}
全部评论

相关推荐

10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
10-17 12:16
同济大学 Java
7182oat:快快放弃了然后发给我,然后让我也泡他七天最后再拒掉,狠狠羞辱他一把😋
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务