leetcode 2299. 强密码检验器 II
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
如果一个密码满足以下所有条件我们称它是一个 强 密码
它有至少 8 个字符。
至少包含 一个小写英文 字母。
至少包含 一个大写英文 字母。
至少包含 一个数字 。
至少包含 一个特殊字符 。特殊字符为"!@#$%^&*()-+" 中的一个。
它 不 包含 2 个连续相同的字符比方说 "aab" 不符合该条件但是 "aba" 符合该条件。
给你一个字符串 password 如果它是一个 强 密码返回 true否则返回 false 。
示例 1
输入password = "IloveLe3tcode!"
输出true
解释密码满足所有的要求所以我们返回 true 。
示例 2
输入password = "Me+You--IsMyDream"
输出false
解释密码不包含数字且包含 2 个连续相同的字符。所以我们返回 false 。
示例 3
输入password = "1aB!"
输出false
解释密码不符合长度要求。所以我们返回 false 。
提示
1 <= password.length <= 100
password 包含字母数字和 "!@#$%^&*()-+" 这些特殊字符。
class Solution {
public:
bool strongPasswordCheckerII(string password) {
bool eight=0,small=0,big=0,num=0,spe=0;
int con=1;
eight=password.length()>=8;
for(int i=0;i<password.length();i++){
if(islower(password[i])){
small=1;
}
if(isupper(password[i])){
big=1;
}
if(isdigit(password[i])){
num=1;
}
if(password[i]=='!'||password[i]=='@'||password[i]=='#'||password[i]=='$'||password[i]=='%'||password[i]=='^'||password[i]=='&'||password[i]=='*'||password[i]=='('||password[i]==')'||password[i]=='-'||password[i]=='+'){
spe=1;
}
if(i>0&&password[i]==password[i-1]){
con=0;
}
}
cout<<eight<<" "<<small<<" "<<big<<" "<<num<<" "<<spe<<" "<<con<<endl;
return eight&&small&&big&&num&&spe&&con;
}
};