假设我们有一个代表密码的字符串s,我们必须检查密码标准。有几条规则,我们必须遵循-
密码长度至少为8个字符,最大为20个字符。
密码至少包含一位数字
密码至少包含一个小写字符和一个大写字符
密码至少包含一个特殊字符,如!“#$%&\'()* +,-。/ :; <=>?@ [\\] ^ _`{|}〜
密码不包含其他任何字符,例如制表符或换行符。
因此,如果输入类似于“ @ bCd12#4”,则输出将为True。
为了解决这个问题,我们将遵循以下步骤-
a:= 0,b:= 0,c:= 0,d:= 0
如果密码的大小<8或密码的大小> 20,则
返回False
对于密码中的每个字符,请执行
d:= d + 1
c:= c + 1
b:= b + 1
a:= a + 1
如果我是大写字母,那么
否则,当我是小写字母时
否则,当我在这组特殊字符'“!”#^ modAND \'()* +,-./:;<=>?@[\\]XOR_`{OR}~“”中时,则
否则,当我是数字时,则
如果a> = 1和b> = 1且c> = 1和d> = 1且a + b + c + d与密码的大小相同,则
返回True
除此以外,
返回False
让我们看下面的实现以更好地理解-
class Solution: def solve(self, password): a=0 b=0 c=0 d=0 if len(password)<8 or len(password)>20: return False for i in password: if i.isupper(): a+=1 elif i.islower(): b+=1 elif i in '"!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~"': c+=1 elif i.isdigit(): d+=1 if a>=1 and b>=1 and c>=1 and d>=1 and a+b+c+d==len(password): return True else: return False s = "@bCd12#4" ob = Solution()print(ob.solve(s))
"@bCd12#4"
输出结果
True