《LeetCode力扣练习》代码随想录——回溯算法(电话号码的字母组合—Java)
刷题思路来源于 代码随想录
17. 电话号码的字母组合
-
回溯
class Solution { private String[] nums = { "", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" }; private StringBuilder sb = new StringBuilder(); private List<String> result = new ArrayList<>(); public List<String> letterCombinations(String digits) { if (digits.length() != 0) { backtrack(digits, 0); } return result; } private void backtrack(String digits, int startIndex) { if (sb.length() == digits.length()) { result.add(sb.toString()); return; } String str = nums[digits.charAt(startIndex) - '0']; for (int i = 0; i < str.length(); i++) { sb.append(str.charAt(i)); backtrack(digits, startIndex + 1); sb.deleteCharAt(sb.length() - 1); } return; } }