广州大型网站制作公司,技术网站建设,昆明做凡科网站,做民宿房东怎样上网站卖房力扣第17题#xff0c;电话号码的字母组合
题目
给定一个仅包含数字 2-9 的字符串#xff0c;返回所有它能表示的字母组合。
给出数字到字母的映射如下#xff08;与电话按键相同#xff09;。注意 1 不对应任何字母。 .电话号码的字母组合
示例:
输入#xff1a;“2…力扣第17题电话号码的字母组合
题目
给定一个仅包含数字 2-9 的字符串返回所有它能表示的字母组合。
给出数字到字母的映射如下与电话按键相同。注意 1 不对应任何字母。 .电话号码的字母组合
示例:
输入“23” 输出[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 说明尽管上面的答案是按字典序排列的但是你可以任意选择答案输出的顺序
图解 public class Solution{StringBuilder path new StringBuilder();ListString result new ArrayList();ListString datas Stream.of(,,abc,def,ghi,jkl,mno,pqrs,tuv,wxyz).collect(Collectors.toList());/*** 回溯算法*/public void backTracking(char[] digitsArr,int startIndex){// 1.终止条件if(startIndex digitsArr.length){result.add(path.toString());return;}// 当前递归层-位置startIndex所对应的数字int targetNumber digitsArr[startIndex] - 0;// 获取当前递归层所对应的字符串String data datas.get(targetNumber);//for循环每一层递归的循环for(int i 0 ; i data.length();i){path.append(data.charAt(i));//递归backTracking(digitsArr,startIndex1);//回溯path.deleteCharAt(path.length() - 1);}}public ListString solution(String digits){if(digits null || digits.equals()){return Collections.EMPTY_LIST;}backTracking(digits.toCharArray(),0);return result;}
}