LeetCode算法題-17. 電話號碼的字母組合(Swift)

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

給定一個(gè)僅包含數(shù)字 2-9 的字符串,返回所有它能表示的字母組合。

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


image.png

示例:

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

方法

 func letterCombinations(_ digits: String) -> [String] {
           
        let dic = [
            "0":[],
            "1":[],
            "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"]
        ]
        
        var result = [String]() //存放結(jié)果的值
        
        for character in digits {
            let currentArray = dic[String(character)]!//當(dāng)前對應(yīng)的鍵盤上的單詞
            
            if result.count == 0 {
                //如果此時(shí)結(jié)果里面還沒值,將當(dāng)前對應(yīng)的單詞數(shù)組加入結(jié)果
                for chara in currentArray {
                    result.append(chara)
                }
            }else {
                //1、如果結(jié)果有值,遍歷結(jié)果,取出一個(gè)值后,將其拿出。
                //2、遍歷當(dāng)前鍵盤對應(yīng)的單詞數(shù)組,將其拼在第一步拿出的字符串后面,并將這個(gè)拼在結(jié)果里面。
                let currentResult = result
                
                for i in 0..<currentResult.count {
                    result.remove(at: 0)
                    let resultStr = currentResult[i]
                    for chara in currentArray {
                        let lastChara = resultStr + chara
                        result.append(lastChara)
                    }
                }
            }
        }
        return result
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 給定一個(gè)僅包含數(shù)字2-9的字符串,返回所有它能表示的字母組合。 給出數(shù)字到字母的映射如下(與電話按鍵相同)。注意 ...
    追夢人zcw閱讀 392評論 0 1
  • 給定一個(gè)僅包含數(shù)字 2-9 的字符串,返回所有它能表示的字母組合。給出數(shù)字到字母的映射如下(與電話按鍵相同)。注意...
    LeeYunFeng閱讀 1,046評論 0 48
  • 給定一個(gè)僅包含數(shù)字 2-9 的字符串,返回所有它能表示的字母組合。 給出數(shù)字到字母的映射如下(與電話按鍵相同)。注...
    蚓語戲言閱讀 743評論 0 0
  • 題目鏈接難度:中等 類型: 遞歸 給定一個(gè)僅包含數(shù)字 2-9 的字符串,返回所有它能表示的字母...
    wzNote閱讀 2,180評論 7 3
  • 需求 給定一個(gè)僅包含數(shù)字 2-9 的字符串,返回所有它能表示的字母組合。 數(shù)字到字母的映射,與電話按鍵相同。注意 ...
    惑也閱讀 730評論 0 7

友情鏈接更多精彩內(nèi)容