2299. 强密码检验器 II ●
描述
如果一个密码满足以下所有条件,我们称它是一个 强 密码:
- 它有至少 8 个字符。
- 至少包含 一个小写英文 字母。
- 至少包含 一个大写英文 字母。
- 至少包含 一个数字 。
- 至少包含 一个特殊字符 。特殊字符为:“!@#$%^&*()-+” 中的一个。
- 它 不 包含 2 个连续相同的字符(比方说 “aab” 不符合该条件,但是 “aba” 符合该条件)。
给你一个字符串 password ,如果它是一个 强 密码,返回 true,否则返回 false 。
1
<
=
p
a
s
s
w
o
r
d
.
l
e
n
g
t
h
<
=
100
1 <= password.length <= 100
1<=password.length<=100
password 包含字母,数字和 “!@#$%^&*()-+” 这些特殊字符。
示例
输入:password = “IloveLe3tcode!”
输出:true
解释:密码满足所有的要求,所以我们返回 true 。
题解
1. 模拟比较
class Solution {
public:
bool strongPasswordCheckerII(string password) {
int len = password.length();
if(len < 8) return false;
char pre;
int num = 0, A = 0, a = 0, ch = 0;
for(int i = 0; i < len; ++i){
char curr = password[i];
if(i > 0 && curr == pre) return false;
if(curr >= '0' && curr <= '9'){
num = 1;
}else if(curr >= 'a' && curr <= 'z'){
a = 1;
}else if(curr >= 'A' && curr <= 'Z'){
A = 1;
}else{
ch = 1;
}
pre = curr;
}
return (num && ch && A && a);
}
};