You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
872 B
Python

with open("input") as f:
puzzle_input = [n.strip() for n in f.readlines()]
# puzzle_input = ["qjhvhtzxzqqjkmpb", "xxyxx", "uurcxstgmygtbstg", "ieodomkazucvgmuy"]
nice_words = 0
def has_duplicate_pair(word):
for idx_a in range(len(word) - 3):
for idx_b in range(idx_a + 2, len(word) - 1):
pair_1 = word[idx_a] + word[idx_a + 1]
pair_2 = word[idx_b] + word[idx_b + 1]
if pair_1 == pair_2:
return True
return False
def has_repeated_letter_with_one_between(word):
for idx, a in enumerate(word[:-2]):
b = word[idx + 2]
if a == b:
return True
return False
def is_nice_word(word):
return has_duplicate_pair(word) and has_repeated_letter_with_one_between(word)
for word in puzzle_input:
if is_nice_word(word):
nice_words += 1
print(nice_words)