• LeetCode----*的字母组合「回溯」


    题目描述

    给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
    给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
    图片来自LeetCode

    图片引用自LeetCode

    示例

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

    说明:

    尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。

    思路

    穷举所有可能即可。

    代码

    class Solution {
        private List<String> list = new LinkedList<>();
        private char[][] arr = {{'a', 'b', 'c'}, {'d', 'e', 'f'}, {'g', 'h', 'i'},
                        {'j', 'k', 'l'}, {'m', 'n', 'o'}, {'p', 'q', 'r', 's'},
                        {'t', 'u', 'v'}, {'w', 'x', 'y', 'z'}};
        private void dfs(String str, int p, StringBuffer sb) {
            if(p == str.length()) {
                if(sb.length() > 0) list.add(sb.toString());
                return;
            }
            int tag = str.charAt(p)-'2';
            for(char c : arr[tag]) {
                sb.append(c);
                dfs(str, p+1, sb);
                sb.deleteCharAt(sb.length()-1);
            }
        }
        public List<String> letterCombinations(String digits) {
            StringBuffer stringBuffer = new StringBuffer();
            dfs(digits, 0, stringBuffer);
            return list;
        }
    }
    
  • 相关阅读:
    Spring-Boot:多种配置注入方式
    Spring-Boot:Profile简单示例
    Spring-Boot:拦截器注解范例
    Docker:镜像的迁移
    YARN的内存和CPU配置
    Spark On YARN内存分配
    Spark配置参数
    linux_密钥
    分布式架构高可用架构篇_04_Keepalived+Nginx实现高可用Web负载均衡
    PythonDay01
  • 原文地址:https://www.cnblogs.com/qq188380780/p/11634623.html
Copyright © 2020-2023  润新知