• LeetCode No17. *的字母组合


    题目

    给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

    给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

     

    示例 1:

    输入:digits = "23"
    输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]

    示例 2:

    输入:digits = ""
    输出:[]

    示例 3:

    输入:digits = "2"
    输出:["a","b","c"]

    提示:

    0 <= digits.length <= 4
    digits[i] 是范围 ['2', '9'] 的一个数字。

    思路

    其实就是一个全排列的问题,数据范围也不大,打表记好每个数字对应的字符,直接一波回溯即可。

    AC代码

    点击查看代码
    class Solution {
        List<String> list;
        char[] chars;
        StringBuffer sb;
        Map<Character, Character[]> map = new HashMap<>(){{
            put('2', new Character[]{'a', 'b', 'c'});
            put('3', new Character[]{'d', 'e', 'f'});
            put('4', new Character[]{'g', 'h', 'i'});
            put('5', new Character[]{'j', 'k', 'l'});
            put('6', new Character[]{'m', 'n', 'o'});
            put('7', new Character[]{'p', 'q', 'r', 's'});
            put('8', new Character[]{'t', 'u', 'v'});
            put('9', new Character[]{'w', 'x', 'y', 'z'});
        }};
    
        private void DFS(int index) {
            if( index==chars.length) {
                list.add(sb.toString());
                return ;
            }
            Character[] ch = map.get(chars[index]);
            for(char cha: ch) {
                sb.append(cha);
                DFS(index+1);
                sb.deleteCharAt(sb.length()-1);
            }
        }
    
        public List<String> letterCombinations(String digits) {
            list = new ArrayList<>();
            if(digits.length()==0) {
                return list;
            }
            chars = digits.toCharArray();
            sb = new StringBuffer();
            DFS(0);
            return list;
        }
    }
    
  • 相关阅读:
    window.open()弹出窗口防止被禁
    实用Javascript代码片段
    php字符串常用函数
    PHP基本使用
    php开发环境搭建
    what is php?
    Front-end Developer Interview Questions
    jQuery Questions:Front-end Developer Interview Questions
    JS Questions:Front-end Developer Interview Questions
    HTML Questions:Front-end Developer Interview Questions
  • 原文地址:https://www.cnblogs.com/Asimple/p/16175791.html
Copyright © 2020-2023  润新知