程式設計之美之電話號碼對應英語單詞
題目一:根據電話上字母和數字的對應關係,用一個有意義的單詞來表述一個電話號碼,如用computer表示26678837
題目二:反過來,給定一個電話號碼,是否可以用一個單詞來表示呢?怎樣表示最快呢?顯然不是所有的電話號碼都可以對應到單詞上去
首先來看看leetcode上一個類似的題目:
Letter Combinations of a Phone Number
Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.
Input:Digit string "23" Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
Note:
Although the above answer is in lexicographical order, your answer could be in any order you want.
class Solution {
public:
void letterCombinations(string& digits,int index,string* map,string words,vector<string>& res)
{
if(index == digits.size())//得到一個結果
{
res.push_back(words);
return;
}
int i;
for(i = 0; i < map[digits[index] - '0'].size();++i)//取第index個數字上的每一個字元,進行深度遞迴
{
letterCombinations(digits,index + 1,map,words+map[digits[index] - '0'][i],res);
}
}
vector<string> letterCombinations(string digits) {
string map[10] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};//數字和字母的對應關係
vector<string> res;
letterCombinations(digits,0,map,"",res);
return res;
}
};
根據這個題目,上面的兩個問題就比較簡單了,正如程式設計之美上說的:對於問題二,我們找出該電話所有可能組合,然後去匹配字典,判斷是否有答案。當然,如果查詢的次數比較多,可直接把字典裡的所有單詞都按照這種轉化關係對映成數字,並儲存到檔案中,然後對這個電話號碼按照查表的方式來得到結果。
相關文章
- 演算法電話號碼對應英文單詞演算法
- 程式設計師眼中的英語單詞程式設計師
- HTMLCSS常用英語單詞HTMLCSS
- 程式碼之美---遞迴之美遞迴
- 英語單詞_英語二_2011
- 程式設計之美之買票找零程式設計
- 英語,對程式設計師有多重要?程式設計師
- Python 英語單詞本Python
- 英語背單詞祕籍
- 程式設計師之冷笑話程式設計師
- 程式設計師英語程式設計師
- 程式碼之美_感悟
- 《程式碼之美》 ——序
- 享受程式碼之美
- 程式設計師 應該掌握的英語詞彙程式設計師
- 2013程式設計之美全國挑戰賽資格賽之傳話遊戲薦程式設計遊戲
- 密碼學之專業英語密碼學
- 程式設計之美複習筆記程式設計筆記
- 程式設計之美之高效安排見面會程式設計
- 程式設計之美之最短摘要生成程式設計
- 對話IT精英女性,領略技術之美
- 程式設計之美leetcode之編輯距離程式設計LeetCode
- 《程式碼之美》的故事
- 這些單詞你都念對了嗎?順便推薦三份程式設計師專屬英語教程!程式設計師
- Go併發程式設計之美-CAS操作Go程式設計
- Go併發程式設計之美-互斥鎖Go程式設計
- 【附原始碼】小程式初窺之簡單查單詞原始碼
- 對齊之美
- 如何記憶英語單詞ward的意思
- 程式設計之美初賽第一場--焦距程式設計
- 程式設計之美初賽第一場--樹程式設計
- 演算法字串位包含程式設計之美演算法字串程式設計
- 英語背單詞專案(資料庫中是4級單詞)資料庫
- 當了程式設計師之後?(真心話)程式設計師
- 機器學習之專業英語機器學習
- 英語語法(1) 名詞
- 英語語法(2) 冠詞
- 英語語法(3) 數詞