首页 > 其他分享 >电话号码的字母组合

电话号码的字母组合

时间:2023-02-25 09:56:36浏览次数:29  
标签:digits index String res 电话号码 字母组合 sb

//

给定一个仅包含数字 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来保存当前字符串,利用回溯算法依次得到每个字母组合。

标签:digits,index,String,res,电话号码,字母组合,sb
From: https://www.cnblogs.com/zzzzzzx/p/17153800.html

相关文章