赞
踩
给定一段”密文”字符串s
,其中字符都是经过”密码本”映射的,现需要将”密文”解密并且输出。
映射的规则 :"a-i"
分别用"1-9"
表示,"j-z"
分别用"10*-26*"
表示
约束:映射始终唯一
“密文”字符串
明文字符串
翻译后的文本的长度在100
以内
- # 构建数字和字母之间的映射关系
- dic = {str(i): chr(ord("a") + i - 1) for i in range(1, 27)}
-
- # 输入字符串
- s = input()
-
- # 构建一个栈
- stack = list()
-
- # 遍历s中所有字符
- for ch in s:
- # 如果是*号,说明*前面的两个数字要合并为一个两位数一起考虑
- if ch == "*":
- digit_1 = stack.pop()
- digit_10 = stack.pop()
- # 将合并后的两位数重新压回栈顶
- stack.append(digit_10 + digit_1)
- # 如果不是*号,而是数字,则直接入栈
- else:
- stack.append(ch)
-
- print("".join(dic[num_str] for num_str in stack))
'运行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。