Advent of Code 2015 day 5 part1: solved

This commit is contained in:
Fabian Tessmer 2025-03-22 14:33:26 +01:00
parent 2f8b2c058a
commit ff126eef68
2 changed files with 1064 additions and 3 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,71 @@
# region Part 1
def check_disallowed_strs(text: str) -> bool:
disallowed_strs = ["ab", "cd", "pq", "xy"]
str_is_disallowed = False
for disallowed_str in disallowed_strs:
if disallowed_str in text:
str_is_disallowed = True
return str_is_disallowed
def check_for_unique_vowels(text: str) -> bool:
vowels = ["a", "e", "i", "o", "u"]
num_vowels = 0
for vowel in vowels:
if vowel in text:
num_vowels += 1
return num_vowels > 2
def check_for_vowels(text: str) -> bool:
vowels = ["a", "e", "i", "o", "u"]
num_vowels = 0
for char in text:
if char in vowels:
num_vowels += 1
return num_vowels > 2
def check_for_repeating_letters(text: str) -> bool:
num_repeats, last_char = 0, ''
for char in text:
if char == last_char and last_char != '':
num_repeats += 1
last_char = char
return num_repeats > 0
def check_if_nice(text: str) -> bool:
nice = check_for_vowels(text) and check_for_repeating_letters(text) and not check_disallowed_strs(text)
return nice
def check_all(pi: list) -> int:
nice_words = 0
for word in pi:
nice_words += check_if_nice(word)
return nice_words
# endregion Part 1
if __name__ == '__main__':
assert (check_for_vowels("aei")
and check_for_vowels("xazegov")
and check_for_vowels("aeiouaeiouaeiou")), \
"Error: Vowlchecker couldn't solve"
assert (check_for_repeating_letters("xx")
and check_for_repeating_letters("abcdde")), \
"Error: repeating letters couldn't solve"
assert check_if_nice("ugknbfddgicrmopn"), "Error: Example 1 couldn't be solved"
assert check_if_nice("aaa"), "Error: Example 2 couldn't be solved"
assert not check_if_nice("jchzalrnumimnmhp"), "Error: Example 3 couldn't be solved"
assert not check_if_nice("haegwjzuvuyypxyu"), "Error: Example 4 couldn't be solved"
assert not check_if_nice("dvszwmarrgswjxmb"), "Error: Example 5 couldn't be solved"
print("All test passed")
puzzle_input = open("input.txt", "r").readline()
print("solution: ", )
puzzle_input = open("input.txt", "r").read().splitlines()
print("solution: ", check_all(puzzle_input))
print("Part2: ")
print("solution: ", )