Я пытаюсь создать надежную проверку пароля, используя Python. Условия пароля следующие:
- Он содержит не менее 6 символов и не более 20 символов.
- Он должен содержать хотя бы одну строчную букву, хотя бы одну заглавную букву и хотя бы одну цифру git.
- Он НЕ должен содержать трех повторяющихся символов подряд («... ааа ...» слабый, но «... аа ... а ...» сильный, предполагая, что другие условия met).
Напишите функцию strongPasswordChecker (s), которая принимает в качестве входных данных строку s и возвращает минимальное изменение, необходимое для создания надежного пароля. Если s уже является сильным, вернуть 0.
Вставка, удаление или замена любого одного символа рассматриваются как одно изменение.
Моя попытка заключается в следующем:
import re
class Solution:
def strongPasswordChecker(self, s: str) -> int:
# Holds the change
change = 0
# Checks if the password length is less than 6
if len(s) < 6:
change += 6 - len(s)
# Checks if the password length is greater than 20
elif len(s) > 20:
change += len(s) - 20
# Checks if the password has at least one digit
elif re.search(r'\d', s):
change += 1
# Checks if the password has at least one upper case letter
elif re.search(r'[A-Z]', s):
change += 1
# Checks if the password has at least one lower case letter
elif re.search(r'[a-z]', password):
change += 1
# Checks for repeating characters
for i in range(1, len(s)):
if i >= 3 and i < len(s):
if s[i] == s[i + 1] and s[i + 1] == s[i + 2]:
change += 1
return change
Несмотря на проверку повторяющихся символов с помощью оператора if, я все еще получаю следующую ошибку:
IndexError: String Index out of range