电话号码的字母组合

//

给定一个仅包含数字 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 中国大陆许可协议进行许可。

posted @   Zzzzzzxz  阅读(5)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开