当前位置:   article > 正文

密码解密-_给定一段密文's',a-i的映射为'1'-'9',m-z的映射为('10*'-'26*')

给定一段密文's',a-i的映射为'1'-'9',m-z的映射为('10*'-'26*')

题目描述

给定一段”密文”字符串s,其中字符都是经过”密码本”映射的,现需要将”密文”解密并且输出。

映射的规则 :"a-i"分别用"1-9"表示,"j-z" 分别用"10*-26*"表示

约束:映射始终唯一

输入描述

“密文”字符串

输出描述

明文字符串

补充说明

翻译后的文本的长度在100以内

  1. # 构建数字和字母之间的映射关系
  2. dic = {str(i): chr(ord("a") + i - 1) for i in range(1, 27)}
  3. # 输入字符串
  4. s = input()
  5. # 构建一个栈
  6. stack = list()
  7. # 遍历s中所有字符
  8. for ch in s:
  9. # 如果是*号,说明*前面的两个数字要合并为一个两位数一起考虑
  10. if ch == "*":
  11. digit_1 = stack.pop()
  12. digit_10 = stack.pop()
  13. # 将合并后的两位数重新压回栈顶
  14. stack.append(digit_10 + digit_1)
  15. # 如果不是*号,而是数字,则直接入栈
  16. else:
  17. stack.append(ch)
  18. print("".join(dic[num_str] for num_str in stack))
'
运行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/799917
推荐阅读
相关标签
  

闽ICP备14008679号