蓝桥杯2024年第十五届国赛真题A题-合法密码 题型:枚举 难度:简单

151 阅读1分钟

image.png

#include<bits/stdc++.h>
using namespace std;
int cnt;
int main()
{
	string s = "kfdhtshmrw4nxg#f44ehlbn33ccto#mwfn2waebry#3qd1ubwyhcyuavuajb#vyecsycuzsmwp31ipzah#catatja3kagbcss2th";
		int n = s.size();

		auto check = [&](string x)
		{
			int cnt1 = 0, cnt2 = 0;
			for (int i = 0; i < x.size(); i++)
			{
				if (isdigit(x[i]))
				{
					cnt1++;
				}
				if (!isdigit(x[i]) && !isalpha(x[i]))
				{
					cnt2++;
				}
			}
			if (cnt1 >= 1 && cnt2 >= 1)return true;
			return false;
		};
	for (int len = 8; len <= 16; len++)
	{
		for (int i = 0; i < n - len; i++)
		{
			string temp = s.substr(i, len);
			if (check(temp))
			{
				cnt++;
			}
		}
	}
	cout << cnt;
	return 0;
}

image.png