用例过了,脑子过了,洛谷不过!求求了
查看原帖
用例过了,脑子过了,洛谷不过!求求了
785289
michelle0516楼主2024/6/11 20:24
#include <iostream>

using namespace std;

bool isChecked(string code){
	if (code.size()<6 || code.size()>12)
	{
		return false;
	}

	bool hasBigger = true;
	bool hasSmaller = true;
	bool hasNumber = true;
	bool hasSpecial = true;

	for (int i = 0; i < code.size(); ++i)
	{
		if (code[i]>='a' && code[i]<='z')
		{
			hasSmaller = true;

		}else if(code[i]>='A' && code[i]<='Z'){

			hasBigger = true;

		}else if (code[i]>='0' && code[i]<='9')
		{
			hasNumber = true;

		}else if (code[i]=='!' || code[i]=='@' || code[i]=='#' || code[i]=='$')
		{
			hasSpecial = true;
		}else{
			return false;
		}
	}

	if (hasBigger+hasSmaller+hasNumber>=2 && hasSpecial)
	{
		return true;
	}else{
		return false;
	}

}

int main() {
	
	string ss;
	getline(cin,ss);

	string code = "";
	for (int i = 0; i < ss.size(); ++i)
	{
		if (ss[i] == ',')
		{
			if (isChecked(code))  //合法的
			{
				cout<<code<<endl;
				code="";//重置待检查密码
			}
		}else{
			code = code+ss[i];
		}
	}

	//特别注意一个case: 如果只有一个密码,没有,时的情况
	if (code != "")
	{
		if (isChecked(code))
		{
				cout<<code<<endl;
				code="";//重置待检查密码
		}
	}

	return 0; 
}
2024/6/11 20:24
加载中...