-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathday07.py
32 lines (31 loc) · 918 Bytes
/
day07.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
part1 = 0
part2 = 0
for line in open('day07.txt'):
i = 0
in_brackets = False
has_abba = False
has_abba_in_brackets = False
ab = set()
ba = set()
for i in range(len(line) - 3):
if line[i] == '[':
in_brackets = True
continue
elif line[i] == ']':
in_brackets = False
continue
elif line[i] != line[i+1]:
if line[i] == line[i+2]:
if in_brackets:
ab.add(line[i:i+2])
else:
ba.add(line[i:i+2])
elif line[i] == line[i+3] and line[i+1] == line[i+2]:
if in_brackets:
has_abba_in_brackets = True
else:
has_abba = True
part1 += has_abba and not has_abba_in_brackets
part2 += any(b+a in ba for a, b in ab)
print('part 1:', part1)
print('part 2:', part2)