题解
- 1 回溯算法(Java实现)
- 2 回溯算法(C++实现)-待更新
1 回溯算法(Java实现)
import java.util.ArrayList;
import java.util.List;public class Solution {List<String> res = new ArrayList<>();private String[] digitMap = new String[]{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" };public List<String> letterCombinations(String digits) {if(digits.length() == 0 || digits == null) return res;StringBuilder track = new StringBuilder();backtrack(digits, 0, track);return res;}private void backtrack(String digits, int start, StringBuilder track) {if(track.length() == digits.length()){res.add(track.toString());return;}char digit = digits.charAt(start);for(char ch : digitMap[digit - '0'].toCharArray()){track.append(ch);backtrack(digits, start + 1, track);track.deleteCharAt(track.length() - 1);}}
}
2 回溯算法(C++实现)-待更新