PythonChallenge 挑战之路 Level-1

按照第一感觉,应该是字符串替换,谜面为

g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.

图片的提示k->m o->q e->g,应该就是每个字母用字母表后第二个字母代替吧,其实也不困难,我的程序:

dd = "abcdefghijklmnopqrstuvwxyz"
words = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
pp = {}
for i in range(26):
    pp[dd[i]] = i

new_words = ""
for i in words:
    if i in pp:
        new_words += dd[((pp[i]+2)%26)]
    else:
        new_words += i

print new_words
运行结果:

i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url.

按照最后一句的提示,把目标字符串用url代替,其实就是.html之前的 “map”, 再跑一遍程序,结果为:

ocr

替换map过关。


=====================分割线========================

第一次运行的结果中推荐采用 string.maketrans()来实现。查了一下用法:http://blog.csdn.net/lingedeng/article/details/7045443

把程序修改为:

import string
dd = "abcdefghijklmnopqrstuvwxyz"
de = "cdefghijklmnopqrstuvwxyzab"
a = string.maketrans(dd,de)

words = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
print string.translate("map", a)


=====================分割线=========================

提交结果后在Level-2页面的最下方有一句提示:To see the solutions to the previous level, replace pc with pcc, i.e. go to: http://www.pythonchallenge.com/pcc/def/ocr.html

即 如果要查看前一关的解法,可以用pcc替换当前网址中的pc。进去后可以发现很多别人的程序,这时候和自己的对比一下,一定能发现很多新东西:)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值