密码验证合格程序
2015-05-10 10:30
239 查看
#include <iostream> #include <string> #include <vector> using namespace std; //计算字符串中字符的种类 int calTypeKinds(string &str) { int count[4]; memset(count , 0 , sizeof(int)*4); for(size_t i = 0; i < str.length(); ++i) { if(str[i] >= 'A' && str[i] <= 'Z') { count[0]++; } else if(str[i] >= 'a' && str[i] <= 'z') { count[1] ++; } else if(str[i] >= '0' && str[i] <= '9') { count[2] ++; } else { count[3]++; } } int typeNum =0; for(int i = 0; i <4; ++i) { if(0 != count[i]) { typeNum ++; } } return typeNum; } bool isContainSameSubstr(string &str) { size_t len = str.length(); for(int i = 0; i < len -2; ++i) { for(int j = i + 1; j < len -2; ++j) { if(strncmp(&(str[i]), &(str[j]), 3) == 0) { return true; } } } return false; } int main() { string str; bool flag = false; int typeTotal = 0; while(cin>>str) { flag = false; typeTotal =0; //1. 判断长度是否超过8 //2. 计算字符串中的字符类型 typeTotal = calTypeKinds(str); //3. 判断字符串中是否有长度超过2的相同子串 bool sameFlag = isContainSameSubstr(str); if( str.length() > 8 && typeTotal >=3 && sameFlag == false) { cout<<"OK"<<endl; } else { cout<<"NG"<<endl; } } return 0; }
相关文章推荐
- 华为oj中级 密码验证合格程序
- Java - 华为机试训练 - 密码验证合格程序(正则表达式判断)
- 【华为OJ20】密码验证合格程序
- 程序员面试金典——密码验证合格程序
- 华为oj 密码验证合格程序
- 【华为机试】密码验证合格程序
- 华为上机密码验证合格程序C++实现
- 牛客网_华为机试_020_牛客网_密码验证合格程序
- Java-NowCoder-密码验证合格程序
- 密码验证合格程序
- 密码验证合格程序
- 20、密码验证合格程序
- 密码验证合格程序
- [编程题]密码验证合格程序
- 华为机试-密码验证合格程序
- 华为OJ-----密码验证合格程序
- Java算法---密码验证合格程序
- 密码验证合格程序
- 华为OJ 密码验证合格程序
- 密码验证合格程序