文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>10 morris

10 morris

时间:2010-03-01  来源:angelia_liu

http://www.pythonchallenge.com/pc/return/bull.html

Hints:
   1. 图片下方有一串字符“len(a[30]) = ?“,可以猜出跟数组/列表有关。
   2. 把鼠标放到图片上可以发现有一个链接,点击链接后出现一串数字:“a = [1, 11, 21, 1211, 111221, ”。从这我们可以看出是需要我们找出这些数字的规律,然后算出第第三十个数字a[30]的长度。

通过查询资料发现可以利用python  的 itertools.groupby 函数来实现。

itertools.groupby()函数接受一个序列和一个key 函数, 并且返回一个生成二元组的迭代器。每一个二元组包含key_function(each item)的结果和另一个包含着所有共享这个key结果的元素的迭代器

import itertools

def next_morris(number):
    return ''.join('%s%s'%(len(list(group)),digit)
                   for digit,group in itertools.groupby(str(number)))



if __name__=="__main__":
    start=1
    a=[1]
    i=0
    while i<31:
        next_num=next_morris(a[i])
        a.append(next_num)
        i+=1
    print len(a[30])


相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载