如果一个密码满足以下所有条件,我们称它是一个 强 密码:
- 它有至少
8
个字符。 - 至少包含 一个小写英文 字母。
- 至少包含 一个大写英文 字母。
- 至少包含 一个数字 。
- 至少包含 一个特殊字符 。特殊字符为:
"!@#$%^&*()-+"
中的一个。 - 它 不 包含
2
个连续相同的字符(比方说"aab"
不符合该条件,但是"aba"
符合该条件)。
给你一个字符串 password
,如果它是一个 强 密码,返回 true
,否则返回 false
。
2299. 强密码检验器 II – 力扣(Leetcode)

思路:
按照题意来写就行了。
python3实现:
class Solution:
def strongPasswordCheckerII(self, password: str) -> bool:
# 根据题意写即可。
lower_list = [chr(i) for i in range(97, 123)]
higher_list = [chr(j) for j in range(65,91)]
num_list = ["0","1","2","3","4","5","6","7","8","9"]
special_list = ["!","@","#","$","%","^","&","*","(",")","-","+"]
if len(password) < 8:
return False
lower_flag = "F"
higher_flag = "F"
num_flag = "F"
special_flag = "F"
new_password = "~" + password
p = 1
tmp = new_password[0]
while p <= len(new_password) - 1:
if new_password[p] == tmp:
return False
if new_password[p] in lower_list:
lower_flag = "T"
if new_password[p] in higher_list:
higher_flag = "T"
if new_password[p] in num_list:
num_flag = "T"
if new_password[p] in special_list:
special_flag = "T"
tmp = new_password[p]
p += 1
if lower_flag == higher_flag == num_flag == special_flag == "T":
return True
print(lower_flag, higher_flag,num_flag,special_flag)
return False
