電話號碼的字母組合

2022-06-09 03:51:09 字數 1187 閱讀 3043

給定乙個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。

給出數字到字母的對映如下(與**按鍵相同)。注意 1 不對應任何字母。

示例:

輸入:"23"

輸出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

說明:儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。

我們看一下上面示例的所有情況組成的樹:

好了,看下**:

l = ["abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]

class solution:

def backtrace(self,i,digits,curstr,result):

if i == len(digits):

curstr = ""

return

num = int(digits[i]) - 2

letters = l[num]

for j in range(len(letters)):

curstr = curstr + letters[j]

self.backtrace(i+1,digits,curstr,result)

curstr = curstr[:-1]

def lettercombinations(self, digits: str) -> list[str]:

r =

if digits == "":

return r

self.backtrace(0,digits,"",r)

return r

好了,再看下這棵樹:

畫得很。。。抽象

整個遞迴呼叫構成一顆樹,大概就是這樣了。

配圖:全排列思想(回溯 | 狀態重置)

電話號碼的字母組合

給乙個數字字串,每個數字代表乙個字母,請返回其所有可能的字母組合。下圖的手機按鍵圖,就表示了每個數字可以代表的字母。樣例給定 23 返回 ad ae af bd be bf cd ce cf 注意以上的答案是按照詞典編撰順序進行輸出的,不過,在做本題時,你也可以任意選擇你喜歡的輸出順序。class ...

電話號碼的字母組合

給定乙個僅包含數字2 9的字串,返回所有它能表示的字母組合。給出數字到字母的對映關係如下 示例 輸入 23 輸出 ad ae af bd be bf cd ce cf 注 輸出字串順序任意 我的 public class lettercombinationsofaphonenumber public...

電話號碼的字母組合

這是一道我刷題時遇到的乙個題目,很簡單,輸入數字,輸出這些數字構成的字元排列組合 由可以看出。given a string containing digits from 2 9 inclusive,return all possible letter combinations that the nu...