Initial commit
This commit is contained in:
commit
97a4330bc0
110 changed files with 7006 additions and 0 deletions
32
2024/19/two.py
Normal file
32
2024/19/two.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import functools
|
||||
|
||||
input_file = sys.argv[1]
|
||||
|
||||
with open(input_file) as fd:
|
||||
lines = [line.rstrip() for line in fd.readlines()]
|
||||
|
||||
towels = set(map(str.strip, lines[0].split(",")))
|
||||
patterns = lines[2:]
|
||||
|
||||
|
||||
@functools.cache
|
||||
def possible(pattern: str) -> int:
|
||||
if not pattern:
|
||||
return 1
|
||||
possible_count = 0
|
||||
for towel in towels:
|
||||
if pattern.startswith(towel):
|
||||
possible_count += possible(pattern[len(towel) :])
|
||||
return possible_count
|
||||
|
||||
|
||||
possible_count = 0
|
||||
for pattern in patterns:
|
||||
res = possible(pattern)
|
||||
print(27, pattern, res)
|
||||
possible_count += res
|
||||
|
||||
print(possible_count)
|
Loading…
Add table
Add a link
Reference in a new issue