leetcode日記17. 電話號碼的字母組合

GreenPill發表於2020-11-20

17. 電話號碼的字母組合

題目

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

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

示例

輸入:"23"
輸出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
說明:
儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。

題解

這題,有點簡單,持續的往後加字元就行了.什麼回溯不回溯的,說的太複雜了.

def letterCombinations(digits):
    nums_dict = {
        "2": ["a", "b", "c"],
        "3": ["d", "e", "f"],
        "4": ["g", "h", "i"],
        "5": ["j", "k", "l"],
        "6": ["m", "n", "o"],
        "7": ["p", "q", "r", "s"],
        "8": ["t", "u", "v"],
        "9": ["w", "x", "y", "z"]
    }
    if len(digits) == 0:
        return []
    if len(digits)==1:
        return nums_dict[digits[0]]

    combine_list = nums_dict[digits[0]]
    for i in range(len(digits)-1):
        combine_list = become_more_long(
            combine_list, digits[i], digits[i+1], nums_dict)
    return combine_list


def become_more_long(combine_list, last_value, new_value, nums_dict):
    new_combine_list = []
    for combine in combine_list:
        for i in nums_dict[new_value]:
            new_combine_list.append(combine+i)
    return new_combine_list

python學到了

今天學會在vscode裡面修改儲存時自動格式化…
在設定裡修改這個屬性"files.autoSave": “off”“files.autoSave”: “off”
在這裡插入圖片描述

相關文章