满足条件:
1、字符数<8不行;
2、没有达到三种类型字符不行;
3、3个字符的子串有重复不行;
#include <iostream>
using namespace std;
string isVaild(string s) {
if (s.length() < 8)return "NG";
int flag[4] = {0};
for (int i = 0; i < s.length(); i++) {
if (s[i] >= 'A' && s[i] <= 'Z')
flag[0] = 1;
else if (s[i] >= 'a' && s[i] <= 'z')
flag[1] = 1;
else if (s[i] >= '0' && s[i] <= '9')
flag[2] = 1;
else if (s[i] != ' ' && s[i] != '\n')
flag[3] = 1;
}
if (flag[0] + flag[1] + flag[2] + flag[3] < 3)return "NG";
for (int i = 0; i <= s.length() - 6; i++) {
for (int j = i+3; j < s.length(); j++) {
if (s.substr(i, 3) == s.substr(j, 3))
return "NG";
}
}
return "OK";
}
int main() {
string str;
while (getline(cin, str)) {
cout<<isVaild(str)<<endl;
}
return 0;
}
求助:为什么以下这种会一直报错“[Error] 'isValid' was not declared in this scope”。不懂!!
#include <iostream>
using namespace std;
bool isVaild(string s) {
if (s.length() < 8)return false;
int flag[4] = {0};
for (int i = 0; i < s.length(); i++) {
if (s[i] >= 'A' && s[i] <= 'Z')
flag[0] = 1;
else if (s[i] >= 'a' && s[i] <= 'z')
flag[1] = 1;
else if (s[i] >= '0' && s[i] <= '9')
flag[2] = 1;
else if (s[i] != ' ' && s[i] != '\n')
flag[3] = 1;
}
if (flag[0] + flag[1] + flag[2] + flag[3] < 3)return false;
for (int i = 0; i < s.length() - 6; i ++) {
for (int j = i+3; j < s.length(); j ++) {
if (s.substr(i, 3) == s.substr(j, 3))
return false;
else continue;
}
}
return true;
}
int main() {
string s;
while(cin>>s){
if (isValid(s))
cout << "OK" << endl;
else
cout << "NG" << endl;
}
}



京公网安备 11010502036488号