Browse Source

2016/9

master
Roderic Day 4 years ago
parent
commit
4e2b05b4ab
1 changed files with 37 additions and 0 deletions
  1. +37
    -0
      y2016/p09.py

+ 37
- 0
y2016/p09.py View File

@@ -0,0 +1,37 @@
import sys


def unzip_len(text, recurse=False):
ptr = 0
size = 0
while ptr < len(text):
if text[ptr] == '(':
ptr += 1

l1 = ptr + text[ptr:].index('x')
l2 = ptr + text[ptr:].index(')')
span = int(text[ptr:l1])
repeat = int(text[l1 + 1:l2])

l3 = l2 + 1
l4 = l3 + span
frag = text[l3:l4]
length = unzip_len(frag, True) if recurse else len(frag)

ptr = l4
size += int(repeat) * length

else:
ptr += 1
size += 1

return size


text = sys.stdin.read().strip()

# ans1 = unzip_len(text)
# print(ans1)

ans2 = unzip_len(text, recurse=True)
print(ans2)

Loading…
Cancel
Save