按照第一感觉,应该是字符串替换,谜面为
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。进去后可以发现很多别人的程序,这时候和自己的对比一下,一定能发现很多新东西:)