您的位置:首页 > 编程语言 > Python开发

PythonChallenge Mission 10

2016-03-14 22:01 337 查看
进入第10关,看到了上一关画的牛的本尊,真的是公牛yooo

看到有提示要求len(a[30]),然而并不知道a[30]是个啥

于是打开网页源代码,看到牛身体被圈出来设置了点击事件,于是点击href进入,发现了a序列:

a = [1, 11, 21, 1211, 111221,

这是一种“Look and Say”序列,就是说每次描述上一个序列连续序列出现的次数。

比如上述a以1为start point开始迭代,那么第二个就是“一个一”,即11;

第三个就是“两个一”,即21,;

第三个就是“一个二一个一”,即1211

...以此类推

于是上代码:

import re

result='1'
pattern=re.compile(r'((?P<w>\d)(?P=w)*)')

for i in range(30):
a=map(lambda x:'%s%s'%(len(x[0]),x[1]),pattern.findall(result))
result=''.join(a)

print len(result)
这里采用了正则表达式来做,不太容易理解不过代码行数比较短。之后再Python栏会专门总结一个正则表达式使用方法的,这里先挖个坑,waiting to be done.

显示结果5808,替换网址http://www.pythonchallenge.com/pc/return/5808.html,进入下一关。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python PythonChallenge