[python] Exercise (1)

问题来源:http://www.pythonchallenge.com/

question:

已知字符有下列的映射方式K->M; O->Q; E->G,破解一段文字:

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.

answer:(拖动鼠标选中下面区域查看答案)

从已知条件中得知,字母都映射为其后的第二个字母,那么得考虑到对于字母y和z,分别映射成什么呢,又考虑到字母的映射是一一对应的,因此还剩下a和b没有被映射,因此y->a,z->b;

1 import string
2 lowercases = string.ascii_lowercase
3 in_put = lowercases
4 out_put = lowercases[2:]+lowercases[0:2]
5 table = str.maketrans(in_put,out_put)
6 strtmp = "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. "
7 strtmp2 = strtmp.translate(table)
8 print(strtmp2)

 

posted @ 2013-06-10 19:47  grassofsky  阅读(233)  评论(2编辑  收藏  举报