日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

17. Letter Combinations of a Phone Number

發(fā)布時(shí)間:2025/5/22 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 17. Letter Combinations of a Phone Number 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

集合類的,一看就是back track

只不過(guò)子集需要規(guī)定一下。

然后好在沒(méi)有1 0 什么的。。簡(jiǎn)單了很多

public class Solution {public List<String> letterCombinations(String digits) {List<String> res = new ArrayList<>();if(digits.length() == 0) return res;Map<Integer,List<Character>> map = new HashMap<Integer,List<Character>>();for(char i = '2'; i <= '9';i++) map.put(i - '0',new ArrayList<Character>());map.get(2).add('a');map.get(2).add('b');map.get(2).add('c');map.get(3).add('d');map.get(3).add('e');map.get(3).add('f');map.get(4).add('g');map.get(4).add('h');map.get(4).add('i');map.get(5).add('j');map.get(5).add('k');map.get(5).add('l');map.get(6).add('m');map.get(6).add('n');map.get(6).add('o');map.get(7).add('p');map.get(7).add('q');map.get(7).add('r');map.get(7).add('s');map.get(8).add('t');map.get(8).add('u');map.get(8).add('v');map.get(9).add('w');map.get(9).add('x');map.get(9).add('y');map.get(9).add('z');helper(res,digits,map,new String(),0);return res; }public void helper(List<String> res, String digits, Map<Integer,List<Character>> map, String tempStr,int m){if(m == digits.length()){res.add(tempStr);}else{char tempCh = digits.charAt(m);List<Character> letterList = map.get(tempCh - '0');for(int j = 0; j < letterList.size();j++){helper(res,digits,map,tempStr + Character.toString(letterList.get(j)),m+1);}}}}

我居然蠢到用MAP來(lái)規(guī)定可用字母。

其實(shí)完全可以String[] = new String[9];
String[2] = "abc"
String[3] = "def"
...

甚至String[] cao = {"","abc","def"...}

BACK TRACK沒(méi)啥可說(shuō)的。。

-----

三刷。

只有數(shù)字的話簡(jiǎn)單多了,沒(méi)那些亂七八糟的。

DFS。。

復(fù)雜度:

Time: O(3^n)
Space: O(n)

public class Solution {public List<String> letterCombinations(String digits) {List<String> res = new ArrayList<>();if (digits.length() == 0) return res;String[] strs = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};dfs(res, strs, digits, new String());return res;}public void dfs(List<String> res, String[] strs, String s, String tempS) {if (s.length() == 0) {res.add(tempS);return;} else {String letter = strs[s.charAt(0) - '0'];for (int i = 0; i < letter.length(); i++) {dfs(res, strs, s.substring(1), tempS + letter.charAt(i));}}} }

轉(zhuǎn)載于:https://www.cnblogs.com/reboot329/articles/6042560.html

總結(jié)

以上是生活随笔為你收集整理的17. Letter Combinations of a Phone Number的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。