| import re | |||||
| def checkpw(a, b, l, pw): | |||||
| print(a, b, l, pw) | |||||
| c = pw.count(l) | |||||
| if a <= c <= b: | |||||
| return True | |||||
| return False | |||||
| 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() |