11import re
22from collections import Counter
3- from typing import Any , List , Tuple
3+ from typing import Any
44
55from src .utils .data import load_data
66from src .utils .submission import submit_or_print
77
88
9- def parse_input (input_data : str ) -> List [ Tuple [Any , ...]]:
9+ def parse_input (input_data : str ) -> list [ tuple [Any , ...]]:
1010 result = []
1111 for line in input_data .splitlines ():
1212 m = re .match (r"(\d+)-(\d+) ([a-z]): ([a-z]+)" , line )
@@ -23,14 +23,14 @@ def main(debug: bool) -> None:
2323
2424 lines = parse_input (input_data )
2525
26- def correct_part1 (line : Tuple [Any , ...]):
26+ def correct_part1 (line : tuple [Any , ...]):
2727 first_number , second_number , character , password = line
2828 c = Counter (password )
2929 return first_number <= c [character ] <= second_number
3030
3131 result_part1 = len (list (filter (correct_part1 , lines )))
3232
33- def correct_part2 (line : Tuple [Any , ...]):
33+ def correct_part2 (line : tuple [Any , ...]):
3434 first_number , second_number , character , password = line
3535 password = " " + password # make indexing 1-based
3636 return (password [first_number ] == character ) ^ (
0 commit comments