Advent of Code 2015 day 5 part1: solved
This commit is contained in:
parent
2f8b2c058a
commit
ff126eef68
1000
2015/day5/input.txt
1000
2015/day5/input.txt
File diff suppressed because it is too large
Load Diff
|
|
@ -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: ", )
|
||||
|
|
|
|||
Loading…
Reference in New Issue