1234567891011121314151617181920212223242526272829 |
- import re
-
- def checkpw(a, b, l, pw):
- try:
- c = pw[a-1]
- d = pw[b-1]
- if c == l or d == l:
- if c == l and d == l:
- return False
- return True
- return False
- except IndexError as e:
- print(a, b, l, pw)
- print(e)
-
- def main():
- patt = re.compile("^(\d+)-(\d+) (.): (.+)$")
- with open("input2.txt") as file:
- lines = file.readlines()
- ln = []
- for line in lines:
- m = re.match(patt, line)
- ln.append([int(m.group(1)), int(m.group(2)), m.group(3), m.group(4)])
- valid = [pw for pw in ln if checkpw(pw[0], pw[1], pw[2], pw[3])]
- print(f"There are {len(valid)} valid passwords out of {len(ln)}.")
-
-
- if __name__ == "__main__":
- main()
|