电话号码的字母组合
给定一个仅包含数字 2-9
的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
//
class Solution { String[] mappings = new String[]{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; List<String> res = new ArrayList<>(); public List<String> letterCombinations(String digits) { if (digits == "" || digits.length() == 0) { return res; } func(new StringBuilder(), digits, 0); return res; } private void func(StringBuilder sb, String digits, int index) { if (sb.length() == digits.length()) { res.add(sb.toString()); return; } Integer num = Integer.valueOf(String.valueOf(digits.charAt(index))); for (int i = 0; i < mappings[num].length(); i++) { sb.append(mappings[num].charAt(i)); func(sb, digits, index + 1); sb.deleteCharAt(index); } } }
//思路:设置一个全局的StringBuilder来保存当前字符串,利用回溯算法依次得到每个字母组合。
本文作者:Zzzzzzxz
本文链接:https://www.cnblogs.com/zzzzzzx/p/17153800.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步