38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
with open('puzzle.txt', 'r') as f:
|
|
strings = f.read().splitlines()
|
|
|
|
nice_strings = 0
|
|
|
|
def second_method(even_pairs, odd_pairs):
|
|
for index_even, even_pair in enumerate(even_pairs):
|
|
for index_odd, odd_pair in enumerate(odd_pairs):
|
|
if even_pair == odd_pair and index_odd != index_even and index_even != index_odd + 1:
|
|
return True
|
|
return False
|
|
|
|
for string in strings:
|
|
string_list = list(string)
|
|
for character_idx in range(len(string_list) - 2):
|
|
if string_list[character_idx] == string_list[character_idx + 2]:
|
|
even_pairs = []
|
|
odd_pairs = []
|
|
for character_idx_b in range(len(string_list) - 1):
|
|
if character_idx_b % 2 == 0:
|
|
even_pairs.append(f'{string_list[character_idx_b]}{string_list[character_idx_b + 1]}')
|
|
else:
|
|
odd_pairs.append(f'{string_list[character_idx_b]}{string_list[character_idx_b + 1]}')
|
|
|
|
if len(even_pairs) != len(set(even_pairs)) or len(odd_pairs) != len(set(odd_pairs)):
|
|
nice_strings += 1
|
|
print(nice_strings, "First method")
|
|
break
|
|
|
|
else:
|
|
if second_method(even_pairs, odd_pairs):
|
|
nice_strings += 1
|
|
print(nice_strings, "Second method", string)
|
|
break
|
|
|
|
|
|
print(nice_strings)
|