LeetCode17 [recursive]: monogram phone number

package leetcode.editor.cn;

//给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 
//
// 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 
//
// 
//
// 示例: 
//
// 输入:"23"
//输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
// 
//
// 说明: 
//尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。 
// Related Topics 字符串 回溯算法


import javax.swing.*;
import java.util.ArrayList;
import java.util.List;

//Java:电话号码的字母组合
public class P17电话号码的字母组合{
    public static void main(String[] args) {
        Solution solution = new P17电话号码的字母组合().new Solution();
        List<String> ans = solution.letterCombinations("23");
        for (int i = 0; i < ans.size(); i++) {
            System.out.println(ans.get(i));
        }
        // TO TEST
    }
    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
            public List<String> list = new ArrayList<>();
            public List<String> letterCombinations(String digits) {
                if (digits.length() == 0) {
                    return list;
                }
                int len = digits.length();
                String[] keyBoard = new String[]{"abc","def", "ghi", "jkl", "mno",
                "pqrs", "tuv", "wxyz"};
                String[] map = new String[len];
                for (int i = 0; i < len; i++) {
                    map[i] = keyBoard[digits.charAt(i) - '0' - 2];
                }
                robot(map, len - 1, 0, "");
                return list;
            }
            public void robot(String[] map, int len, int idx, String strTemp) {
                if (idx > len) {
                    list.add(strTemp);
                    return;
                }
                String temp = map[idx];
                for (int i = 0; i < temp.length(); i++) {
                    robot(map, len, idx + 1, strTemp + temp.charAt(i));
                }
            }
    }
//leetcode submit region end(Prohibit modification and deletion)

}

 

Published 14 original articles · won praise 0 · views 10000 +

Guess you like

Origin blog.csdn.net/baidu_34209307/article/details/105131343