1. 程式人生 > >leetcode 電話號碼的數字組合 python

leetcode 電話號碼的數字組合 python

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

給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。
在這裡插入圖片描述


使用遞迴即可,注意處理輸入為空的情況以及chr()和ord()的用法

class Solution:
    def getA(self, x):
        x = int(x)
        if x == 1:
            return
        elif x >= 2 and x <= 6:
            return [chr(ord('a') + (x - 2) * 3
), chr(ord('a') + (x - 2) * 3 + 1), chr(ord('a') + (x - 2) * 3 + 2)] elif x == 7: return ['p', 'q', 'r', 's'] elif x == 8: return ['t', 'u', 'v'] elif x == 9: return ['w', 'x', 'y', 'z'] def recursionComb(self, digitsList): if len
(digitsList) == 1: return self.getA(digitsList[0]) ans = [] addAns = self.getA(digitsList.pop()) #最後一個元素 preAns = self.recursionComb(digitsList) #之前的所有元素 for i in preAns: for j in addAns: ans.append(i + j) return ans def
letterCombinations(self, digits): """ :type digits: str :rtype: List[str]t """ if digits == '': return [] digitsList = list(digits) return self.recursionComb(digitsList)