24 lines
517 B
Python
24 lines
517 B
Python
data = '3113322113'
|
|
|
|
def iterate(s):
|
|
lastchar = s[0]
|
|
lastcount = 1
|
|
output = []
|
|
for c in s[1:] + '\x00':
|
|
if c == lastchar:
|
|
lastcount += 1
|
|
else:
|
|
output += [str(lastcount), lastchar] # [lastchar]*lastcount
|
|
lastchar = c
|
|
lastcount = 1
|
|
return ''.join(output)
|
|
|
|
s = data
|
|
for i in range(40):
|
|
s = iterate(s)
|
|
print(len(s)) # Part 1
|
|
s2 = s
|
|
for i in range(10): # equivalent to 50 times from starting input. Doesn't really save time though.
|
|
s2 = iterate(s2)
|
|
print(len(s2)) # Part 2
|