◂ 10 décembre 2015 ▸
Elves Look, Elves Say :
- code_partie1.py
- code_partie1_oneLiner.py
- code_partie1_realOneLiner.py
- code_partie2_coupure.py
- code_partie2_coupure_moinsEfficace.py
- code_partie2_coupures.diffy
- code_partie2_elements.py
from functools import cache
from itertools import groupby
inputString = '1113222113'
def nbRepet(s):
c = s[0]
n = 1
for i in range(1,len(s)):
if s[i] != c:
break
n += 1
return n
@cache
def lookandsay(s):
if len(s) < 10:
return ''.join([(str(len(list(i[1])))+i[0]) for i in groupby(s)])
coupure = len(s) // 2
a = lookandsay(s[:coupure])
b = lookandsay(s[coupure:])
if a[-1] == b[1]:
return a[:-2] + str(int(a[-2])+int(b[0])) + b[1:]
else:
return a + b
s = inputString
for i in range(50):
s = lookandsay(s)
print(len(s))