问题
给定一个包含[0,9]中数字的整数数组,任务是打印所有可能的字母
数字可以表示的组合,数字到字母的映射(就像在电话按钮上)正在被跟踪,注意0和1不映射到任何字母。所有映射如下图所示:
写一个程序把0到9的数字转换成字母,且程序需要支持将0到99的数字转换成字母。
例如:
Input:arr[] ={3,4}
Output: DG DH DI EG EH EI FG FH FI
Input: arr[] = {2}
Output: A B C
解题思路
初始化数据
使用HashMap来存储数字和字母的映射关系,其中数字作为key,字母作为value,因为一个数字对应了多个字母,且每个数字对应的字母个数又不尽相同,所以这里的value使用List集合来进行存放。代码如下:
public static void initDigitsMap(){
digitsMap=new HashMap<>();
digitsMap.put("0",Arrays.asList(""));
digitsMap.put("1",Arrays.asList(""));
digitsMap.put("2",Arrays.asList("A","B","C"))