advent-of-code/2022/6/6.py
2022-12-06 08:23:52 +01:00

23 lines
No EOL
653 B
Python

def find_marker(signal:str, marker_length=4) -> int:
for i in range(marker_length,len(signal)):
subsignal = signal[i-marker_length:i]
if len(set(subsignal)) == marker_length:
return i
else:
return -1
test = [
'mjqjpqmgbljsphdztnvjfqwrcgsmlb',
'bvwbjplbgvbhsrlpgdmjqwftvncz',
'nppdvjthqldpwncqszvftbrmjlhg',
'nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg',
'zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw'
]
for s in test:
print(find_marker(s), find_marker(s, 14), )
print('~'*10)
with open('2022/6/datastream.txt') as filein:
signal = filein.read()
print(find_marker(signal), find_marker(signal, 14))