深圳短视频seo哪家好,优化游戏卡顿的软件,宁国市网站建设,邢台网站优化从第一个数字开始遍历其对应的字母#xff0c;将其加入StringBuffer中#xff0c;继续深度优先搜索#xff0c;当访问到最后一个数字的时候#xff0c;将StringBuffer存储到ans中#xff0c;然后回溯到下一个对应字母。
class Solution {public ListString lette… 从第一个数字开始遍历其对应的字母将其加入StringBuffer中继续深度优先搜索当访问到最后一个数字的时候将StringBuffer存储到ans中然后回溯到下一个对应字母。
class Solution {public ListString letterCombinations(String digits) {ListString ans new ArrayList();if (digits.length() 0) return ans;MapCharacter, String map new HashMap() {{put(2, abc);put(3, def);put(4, ghi);put(5, jkl);put(6, mno);put(7, pqrs);put(8, tuv);put(9, wxyz);}};backtrack(ans, digits, map, 0, new StringBuffer());return ans;}public void backtrack(ListString ans, String digits, MapCharacter, String map, int index, StringBuffer sb) {if (index digits.length()) ans.add(sb.toString());else {char ch digits.charAt(index);String letters map.get(ch);for (int i 0; i letters.length(); i) {sb.append(letters.charAt(i));backtrack(ans, digits, map, index 1, sb);sb.deleteCharAt(index);}}}
}拓展 StringBuffer中的删除对应字符的方法是deleteCharAt()