Python程式檢查密碼是否符合要求
假設我們有一個字串s,代表一個密碼,我們需要檢查密碼是否符合要求。
- 密碼長度至少8個字元,最多20個字元。
- 密碼至少包含一個數字。
- 密碼至少包含一個小寫字母和一個大寫字母。
- 密碼至少包含一個特殊字元,例如 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
- 密碼不包含任何其他字元,例如製表符或換行符。
因此,如果輸入是 "@bCd12#4",則輸出為True。
為了解決這個問題,我們將遵循以下步驟:
- a := 0, b := 0, c := 0, d := 0
- 如果密碼長度小於8或大於20,則
- 返回False
- 對於密碼中的每個字元i,執行以下操作:
- 如果i是大寫字母,則
- a := a + 1
- 否則,如果i是小寫字母,則
- b := b + 1
- 否則,如果i屬於特殊字元集'"!"#^modAND\'() *+,- ./:;<=>?@[\]XOR_`{OR}~"',則
- c := c + 1
- 否則,如果i是數字,則
- d := d + 1
- 如果i是大寫字母,則
- 如果 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
廣告