1. 程式人生 > >LeetCode 17. 電話號碼的字母組合(C++)

LeetCode 17. 電話號碼的字母組合(C++)

題目:

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

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

示例:
這裡寫圖片描述
輸入:”23”
輸出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].
說明:
儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。

思路:

這實際上一個字母的排列問題,(對比於組合問題)該問題不需要考慮字母是否使用過,因此,我們只需要將輸入的數字字串中的每個數字替換成其對應的可能的對應字母即可,而這一部分利用遞迴很容易實現。

class
Solution { private: vector<string> res; //儲存最終的返回結果 const string letterMap[10]{ "", //0 (程式執行過程中不會訪問到,這裡新增是為了訪問letterMap的時候鍵盤的數字正好對應陣列中的索引號) " ", //1 (同上) "abc", //2 "def", //3 "ghi", //4 "jkl", //5 "mno", //6 "pqrs", //7 "tuv"
, //8 "wxyz" //9 }; void findCombination(const string& digits, int index, const string& s){ if(index == digits.size()){ //儲存結果 res.push_back(s); return; } char c = digits[index]; //獲取字串中的指定位置的數字 string letters = letterMap[c -'0'
]; //獲取上述數字對應的字母 for(int i =0; i < letters.size(); i++){ //遍歷上述數字對應字母的每種可能性,然後對之後的數字字串遞迴上述操作 findCombination(digits, index + 1, s + letters[i]); } } public: vector<string> letterCombinations(string digits) { res.clear(); if(digits == "") return res; findCombination(digits, 0, ""); return res; } };

相關推薦

LeetCode 17. 電話號碼字母組合C++)

給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例: 輸入:"23" 輸出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce",

LeetCode 17. 電話號碼字母組合 Letter Combinations of a Phone Number (C語言)

題目描述: 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例: 輸入:“23” 輸出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”,

LeetCode 17. 電話號碼字母組合(C++)

題目: 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例: 輸入:”23” 輸出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”,

[C++] LeetCode 17. 電話號碼字母組合

題目 給定一個數字字串,返回數字所有可能表示的字母組合。 下面給出數字到字母的對映(和電話號碼一樣)。 輸入:數字字串 “23” 輸出:[“ad”, “ae”, “af”, “bd”, “b

leetcode-17-電話號碼字母組合

又是 數字 ref gui leet cpp 表示 說明 let 題目描述: 給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。 給出數字到字母的映射如下(與電話按鍵相同)。註意 1 不對應任何字母。 示例: 輸入:"23" 輸出:["ad", "ae",

LeetCode 17 電話號碼字母組合 python實現

題目 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例: 輸入:“23” 輸出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]

LeetCode 17. 電話號碼字母組合 Letter Combinations of a Phone Number

8-1 樹形問題 Letter Combinations of a Phone Number 題目: LeetCode 17. 電話號碼的字母組合 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任

[LeetCode]17. 電話號碼字母組合(Letter Combinations of a Phone Number)

一、題目: LeetCode地址 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例: 輸入:"23" 輸出:["ad", "ae", "af", "bd", "be", "

Leetcode ——17. 電話號碼字母組合

題目描述 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例: 輸入:"23" 輸出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce",

Leetcode(17)電話號碼字母組合

題目描述 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例: 輸入:“23” 輸出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].

leetcode-17-電話號碼字母組合(letter combination of a phone number)-java

題目及測試 package pid017; /* 電話號碼的字母組合 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 2 abc 3 def 4 ghi 5 jkl 6 mno 7 pq

leetcode 17. 電話號碼字母組合 (python) 非遞迴

給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。示例:輸入:"23" 輸出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. 說

Leetcode 17. 電話號碼字母組合

簡單題,暴力列舉即可 class Solution { public: vector<string> ans; string s[8] = { "abc","def","g

leetcode-17. 電話號碼字母組合

一、問題描述 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例: 輸入:"23" 輸出:["ad", "ae", "af", "bd", "be", "bf", "cd"

LeetCode(17. 電話號碼字母組合)

str 字典序 分享圖片 電話 返回 tps 解決 號碼 digi 問題描述 給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。 給出數字到字母的映射如下(與電話按鍵相同)。註意 1 不對應任何字母。 示例: 輸入:"23" 輸出:[&

[LeetCode] 17. 電話號碼字母組合

傳送門:[LeetCode] 17. 電話號碼的字母組合 題目描述 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 說明: 儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。 示例 : 輸入:&q

LeetCode17. 電話號碼字母組合

1、題目描述 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例:   輸入:"23"   輸出:["ad", "ae", "af", "bd", "be", "bf", "cd",

LeetCode17. 電話號碼字母組合

題目描述 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例 輸入:“23” 輸出:[“ad”, “ae”

Leetcode演算法Java全解答--17. 電話號碼字母組合

Leetcode演算法Java全解答–17. 電話號碼的字母組合 題目 給定一個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。 給出數字到字母的對映如下(與電話按鍵相同)。注意 1 不對應任何字母。 digitToLetter[‘2’]=“abc”;

#leetcode刷題之路17-電話號碼字母組合

給定 code 組合 之路 說明 電話 電話號碼 答案 one 給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。給出數字到字母的映射如下(與電話按鍵相同)。註意 1 不對應任何字母。 示例:輸入:"23"輸出:["ad", "ae", "af", "bd