A repro for all my Advent of ode tasks
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

42 lines
1.5 KiB

import re
input = "cqjxjnds"
mistakeable_letters = re.compile(r"([iol])")
doubles = re.compile(r"(.)\1")
def gen_new_password(pInput):
new_password = False
ret = pInput
while new_password != True:
characters = list(ret)
char = characters[len(characters)-1]
characters[len(characters)-1] = chr(ord(char) + 1)
for i in range(len(characters)-1, 0, -1):
if characters[i] == '{':
characters[i] = 'a'
characters[i-1] = chr(ord(characters[i-1]) + 1)
ret = "".join(characters)
no_mistakable_letter = False
two_doubles = False
letter_sequence = False
mistakeable_letter_count = len(re.findall(mistakeable_letters, ret))
if mistakeable_letter_count == 0:
no_mistakable_letter = True
double_count = len(re.findall(doubles, ret))
if double_count >= 2:
two_doubles = True
for i in range(0, len(characters)-3):
if ord(characters[i+1]) == ord(characters[i]) + 1 and ord(characters[i+2]) == ord(characters[i]) + 2:
letter_sequence = True
if no_mistakable_letter == True and two_doubles == True and letter_sequence == True:
new_password = True
return ret
password_1 = gen_new_password(input)
password_2 = gen_new_password(password_1)
print("First new password: " + password_1)
print("Second new password: " + password_2)