Pythonchallenge Level 10 (python2.7)

At the beginning, I thought this would follow the rule: f(n+1)=f(n)+f(n-1)
It turned out to be wrong...
the damn look-and-say sequence....
the main problem is the implementation of this lovely algorithm:

I wrote the below code: (really bad but did work)

>>> a='1'
>>> for i in range(1,31):
pat_x=[]
pat_y=[]
x=0
y=''
for j in range(0,len(a)):
if not j==0:
if a[j-1]==a[j]:
   pat_x[x-1]=pat_x[x-1]+1
else:
   pat_x.insert(x,1)
   pat_y.insert(x,a[j])
   x=x+1
else:
pat_x.insert(x,1)
pat_y.insert(x,a[j])
x=x+1
for p in range(0,len(pat_x)):
y=y+str(pat_x[p])+pat_y[p]
a=y
print 'a='+str(len(a))

the answer is 5808!

你可能感兴趣的:(python,10,pythonchallenge)