LeetCode17. 電話號碼的字母組合 python3
阿新 • • 發佈:2018-12-11
給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。
給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。
示例:
輸入:“23” 輸出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 說明: 儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。
class Solution: def letterCombinations(self, digits): """ :type digits: str :rtype: List[str] """ num_list = [] dit = { '2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl', '6': 'mno', '7': 'pqrs', '8': 'tuv ', '9': 'wxyz', } digits = list(digits) while digits: a = digits.pop(0) if num_list == []: for i in dit[a]: num_list.append(i) else: num_list2 = [] for i in dit[a]: def add_f(n): return n + i num_list2 += list(map(add_f, num_list)) num_list = num_list2 return num_list if __name__ == "__main__": s = Solution() print(s.letterCombinations('237'))