題目一:根據**上字母和數字的對應關係,用乙個有意義的單詞來表述乙個**號碼,如用computer表示26678837
題目二:反過來,給定乙個**號碼,是否可以用乙個單詞來表示呢?怎樣表示最快呢?顯然不是所有的**號碼都可以對應到單詞上去
given a digit string, return all possible letter combinations that the number could represent.
input:digit string "23"note:output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
although the above answer is in lexicographical order, your answer could be in any order you want.
思路:用遞迴實現比較簡單,首先建立乙個hash表,然後對每乙個數字,深度搜尋可能的取值,當每個數字都取乙個值之後,就得到了乙個結果,具體如下:
class solution
int i;
for(i = 0; i < map[digits[index] - '0'].size();++i)//取第index個數字上的每乙個字元,進行深度遞迴
}vectorlettercombinations(string digits) ;//數字和字母的對應關係
vectorres;
lettercombinations(digits,0,map,"",res);
return res;}};
根據這個題目,上面的兩個問題就比較簡單了,正如程式設計之美上說的:對於問題二,我們找出該**所有可能組合,然後去匹配字典,判斷是否有答案。當然,如果查詢的次數比較多,可直接把字典裡的所有單詞都按照這種轉化關係對映成數字,並儲存到檔案中,然後對這個**號碼按照查表的方式來得到結果。 《程式設計之美》 電話號碼對應英語單詞
問題 的號碼盤一般可以用於輸入字母,如用2可以輸入a,b,c,用3可以輸入d,e,f等。對於號碼5869872,可以依次輸出其代表的所有字母組合。如 jtmwtpa,jtmwtpb 1 您能否可以根據這樣的對應關係設計乙個程式,盡可能快地從這些字母組合中找到乙個有意義的單詞來描述乙個 號碼呢?如 可...
程式設計之美 電話號碼對應英語單詞
問題描述 的號碼盤上乙個數字對應著幾個字母,一串數字對應著幾種字母的組合。現在給定一組數字,列出對應的字母的組合。思路 例如 4對應鍵盤上 ghi,2對應鍵盤上 abc 數字 42 的組合對應的字串,用樹的表現形式 424 g h i 2 a b a b a b 結果 ga,gb,ha,hb,ia,...
程式設計之美 3 2 電話號碼對應英語單詞
的號碼盤一般可以用於輸入字母。如用2可以輸入a b c,用3可以輸入d e f等。對於號碼5869872,可以依次輸出其代表的所有字母組合。如 jtmwtpa jtmwtb 1 設計程式,盡可能從這些字母組合中,找到乙個有意義的單詞來表述乙個 號碼。如單詞 computer 來描述號碼2667883...