【原创】pythonchalleng——第10题
来源:互联网 发布:好看的香港电影 知乎 编辑:程序博客网 时间:2024/06/07 11:04
第十题的网址:http://www.pythonchallenge.com/pc/return/bull.html,下面是该题目的截图,特此留念。
页面上的提示信息是问我们a[30]的长度是多少,但是a在哪呢?我们还是看看页面的源代码吧,那里应该有很多有用信息。参观完源代码后,发现图片上的牛是可以点击的,点进去后,得到如下信息: a = [1, 11, 21, 1211, 111221,我们找到a了,但是它也没有下标为30的元素呀……哦,有可能上面的元素之间存在某些关系,通过这些关系可以推导出a[30]的数值。我们接下来需要做的就是逻辑推理,Fighting!
5分钟……10分钟……15分钟…………
郁闷了……就是看不出什么有效的关系……还是求教于网络吧……不看不知道,一看吓一跳!它们的关系如下:
a[0]=11:1个1,把这些数字串起来,就是a[1]=1111:2个1,把这些数字串起来,就是a[2]=2121:1个2,1个1,把这些数字串起来,就是a[3]=12111211: 1个1,1个2,2个1,把这些数字串起来,就是a[4]=111221111221:3个1,2个2,1个1,把这些数字串起来,就是a[5]=312211……
这下大家知道其中的规律了吧,好了,现在就可以上代码了。
__author__ = 'hengha'import redef fun9(string):first=str(string)
rex=re.compile(r'(\d)(\1*)')
for k in range(30):data=rex.findall(first)temp=''for i,j in data:
temp += str(1+len(j))+ifirst=tempprint len(first)
if __name__== '__main__':fun9('1')
我们得到的答案就是5808,把URL中的bull替换为5808,看看会有什么效果。哈哈,顺利进入第11题,网址为:http://www.pythonchallenge.com/pc/return/5808.html
需要强调一下的是我们使用到了正则表达式的技术来提取符合要求的字符串,例如111和22等。我们可以理解\d的意思,就是代表数字,而\1则是引用编号为1的分组匹配到的字符串,即\1可以用来表示第一个匹配的数字,*表示这个数字可以重复0次或多次。因为\d已经匹配了一次,所以后面应该使用\1*,而不是\1+。
0 0
- 【原创】pythonchalleng——第10题
- 【原创】pythonchalleng——第0题
- 【原创】pythonchalleng——第1题
- 【原创】pythonchalleng——第3题
- 【原创】pythonchalleng——第4题
- 【原创】pythonchalleng——第5题
- 【原创】pythonchalleng——第6题
- 【原创】pythonchalleng——第7题
- 【原创】pythonchalleng——第8题
- 【原创】pythonchalleng——第9题
- 【原创】pythonchalleng——第11题
- 【原创】pythonchalleng——第12题
- 【原创】pythonchalleng——第13题
- 【原创】pythonchalleng——第14题
- 【原创】pythonchalleng——第15题
- (原创)VC开发小技巧——第一篇
- JI——第200篇原创博文
- 写在前面——第一篇原创博客
- mybatise配置文件通配
- 【原创】pythonchalleng——第9题
- 用Maven插件生成Mybatis代码
- 命名sql的常见用法
- mybatise应用
- 【原创】pythonchalleng——第10题
- 【原创】pythonchalleng——第11题
- springmvc值的传递(从后台到前台)
- SCOI 2017 酱油记
- LeetCode 540. Single Element in a Sorted Array
- USACO-2.1.1- The Castle
- 【原创】pythonchalleng——第12题
- springmvc值的传递(从前台到后台)
- 【原创】pythonchalleng——第13题