20 lines
528 B
Python
20 lines
528 B
Python
import re
|
|
|
|
|
|
def part1_nice(word):
|
|
vowels = re.search(r"([aeiou].*){3}", word)
|
|
double = re.search(r"(.)\1", word)
|
|
forbidden = re.search(r"ab|cd|pq|xy", word)
|
|
return vowels and double and not forbidden
|
|
|
|
|
|
def part2_nice(word):
|
|
pair = re.search(r"(..).*\1", word)
|
|
repeats = re.search(r"(.).\1", word)
|
|
return pair and repeats
|
|
|
|
|
|
def solve(inputstr):
|
|
words = inputstr.splitlines()
|
|
print(f"Part 1: {len(list(filter(part1_nice, words)))}")
|
|
print(f"Part 2: {len(list(filter(part2_nice, words)))}")
|