用于检查给定密码是否符合条件的程序
假设我们有一个代表密码的字符串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