leetcode 電話號碼的字母組合

2022-10-08 16:21:17 字數 911 閱讀 3076

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

輸入:digits = "23"

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

使用雜湊表儲存每個數字對應的所有可能的字母,然後進行回溯操作

回溯過程中維護乙個字串,表示已有的字母排列,該字串初始為空。每次取**號碼的一位數字,從雜湊表中獲得該數字對應的所有可能的字母,並將其中的乙個字母插入到已有的字母排列後面,然後繼續處理**號碼的後一位數字,直到處理完**號碼中的所有數字,即得到乙個完整的字母排列。

然後進行回退操作,遍歷其餘的字母排列

class solution:

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

if not digits:

return

phonemap =

n = len(digits)

ans =

tmp =

def backtrack(index):

if index==n:

else:

digit = digits[index]

for letter in phonemap[digit]:

backtrack(index+1)

tmp.pop()

backtrack(0)

return ans

LeetCode 電話號碼的字母組合

號碼的字母組合,是大家熟悉的字母九宮格鍵盤,按照題目要求盡可能的按照字母排序 所有的資料盤排列和下圖大致相當 解題思想是 相鄰的兩個數字中,第乙個數字所包含的字母是根節點,第二個數字包含的字母自動分配到每個根節點上,按照這種思想,我們只需要處理相鄰兩個數字,對每個根節點進行擴充套件,得到所有想要的組...

LeetCode 電話號碼的字母組合

給定乙個僅包含數字2 9的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。示例 輸入 23 輸出 ad ae af bd be bf cd ce cf 說明 儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。回溯演算法是不是很是陌生...

leetcode 電話號碼的字母組合

題目 給定乙個僅包含數字2 9的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。示例 輸入 23 輸出 ad ae af bd be bf cd ce cf include include using namespace std int main ...