首页 > 试题广场 >

密码破译

[编程题]密码破译
  • 热度指数:2668 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
我们来做一个简单的密码破译游戏。破译的规则很简单,将数字转换为字母,1转化为a,2转化为b,依此类推,26转化为z。现在输入的密码是一串数字,输出的破译结果是该数字串通过转换规则所能产生的所有字符串。

输入描述:
多行数据,每行为一个数字串。
保证数字串的总长度不超过1000,每行数据的答案至少有1个且不超过1000个。


输出描述:
多行数据,每行对应输出通过数字串破译得到的所有字符串,并按照字符串顺序排列,字符串之间用单个空格分隔。每行开头和结尾不允许有多余的空格。
示例1

输入

1
12
123

输出

a
ab l
abc aw lc
头像 牛客题解官
发表于 2020-06-05 17:34:56
精华题解 题解 题目难度:中等 知识点:ASCII码、递归、DFS 解题思路:首先,这道题一看就主要考察DFS,使用递归就可以求解出题。然后,因为涉及到数字和字符的转换,这个自然就会联想到ASCII码。整体思路还是比较清晰的,主要还需要考虑涉及到一些特殊情况。首先,“0”这个数字在转换过程中需要怎么考虑。因为 展开全文
头像 白伟仝
发表于 2020-05-10 11:25:39
import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); Map<String 展开全文