现在的位置: 首页 > 编程语言 > 正文

【pythonchallenge】【问题1】

2019年07月22日 编程语言 ⁄ 共 1270字 ⁄ 字号 评论关闭
  1. 网页标题:What about making trans?
  2. 问题网址:http://www.pythonchallenge.com/pc/def/map.html
  3. 问题描述:问题给了个图片,是map的对应关系,
    everybody thinks twice before solving this.

    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.

  4. 问题提示:everybody thinks twice before solving this.
  5. 问题分析:根据网页标题和图片,可以看出此题是需求做翻译,下面给出了一堆乱码,经过图片中给出的map对应关系来替换,既可得出答案。思考过程如下:
    1. 图中只给出了3中对应关系,而有26个英文字母,所以应该还有其他的对应关系,把26个字母写出来,如下图
    2. 给出的3中关系全在图中,可以看出莫非是一个字母用其后+2的字母替换,我们尝试翻译一下g
      fmnc
      ”替换成“i hope”,顺利成章
    3. 考虑边界情况,比如x->z,那么y->?和z->?呢?初步猜想是循环替换的,y->a和z->b,
    4. 检验我们的猜想,找一个单词rpylqjyrc含有y或者z,翻译除了y和z其他的字母,输出结果是trynslyte,这个单词好眼熟啊,正确的拼写形式应该是translate,果然验证了我们的猜想
    5. 开始写代码吧
  6. 代码实现
        s = "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."
        new_s = ''
        for ch in s:
            if ch >= 'a' and ch <= 'x':
                ch = chr(ord(ch) + 2)
            elif ch == 'y':
                ch = 'a'
            elif ch == 'z':
                ch = 'b'
            new_s += ch
        print new_s

  7. 输出结果: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.
  8. 结果分析:提示我们用string.maketrans()方法,并应用到url中,我们暂时不用string.maketrans()方法,直接手工替换map成ocr
  9. 替换网址:http://www.pythonchallenge.com/pc/def/ocr.html

抱歉!评论已关闭.