◂ 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
while coupure > 0 and s[coupure] == s[coupure - 1]:
coupure -= 1
return lookandsay(s[:coupure]) + lookandsay(s[coupure:])
s = inputString
for i in range(50):
s = lookandsay(s)
print(len(s))