第三十五次CSP第一题
简单的模拟
#include<iostream> #include<string> using namespace std; bool check_twice(int* num) { for (int i = 0;i < 64;i++) { if (num[i] >= 3) return false; } return true; } int val(string s) { int zimu = 0, shuzi = 0, teshu = 0; int num[70] = {0}; int len = 0; for (auto c : s) { len++; if (c >= 'A' && c <= 'Z') { num[c - 'A']++; zimu++; } else if (c >= 'a' && c <= 'z') { num[26 + c - 'a']++; zimu++; } else if (c >= '0' && c <= '9') { num[52 + c - '0']++; shuzi++; } else if (c == '*') { num[62]++; teshu++; } else if (c == '#') { num[63]++; teshu++; } } if (len >= 6) { if (zimu > 0 && teshu > 0 && shuzi > 0) { if (check_twice(num)) { return 2; } return 1; } return 0; } } int main() { int n; scanf_s("%d", &n); while (n--) { string s; cin >> s; cout << val(s); } return 0; }