17 電話號碼的字母組合

2021-10-01 14:47:57 字數 823 閱讀 4795

這個用回溯法,樹的結構是排列樹。

節點生枝的方式就是新增下一位數字對應的字母。

# combination 記錄臨時的組合

# next_digits 記錄的剩下的數字

def backtrack(combination, next_digits):

# 得到可行解

if len(next_digits) == 0:

# the combination is done

else:

# 從剩下的數字對應的字母裡讓組合裡新增

for letter in phone[next_digits[0]]:

# and proceed to the next digits

backtrack(combination + letter, next_digits[1:])

output =

if digits:

backtrack("", digits)

return output

17 電話號碼的字母組合

給定乙個數字字串,返回數字所有可能表示的字母組合。下面給出數字到字母的對映 和 號碼一樣 輸入 數字字串 23 輸出 ad ae af bd be bf cd ce cf 思路1 採用迭代的方法。class solution if digits.empty return vector vectorr...

17 電話號碼的字母組合

1.遞迴 class solution object deflettercombinations self,digits type digits str rtype list str 建立字母對應的字元列表的字典 dic 儲存結果的陣列 ret str iflen digits 0 return 遞...

17 電話號碼的字母組合

給定乙個僅包含數字2 9的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。圖中顯示 2 abc 3 def 4 ghi 5 jkl 6 mno 7 pqrs 8 tuv 9 wxyz 輸入 23 輸出 ad ae af bd be bf cd ce...