1. 程式人生 > >[LeetCode] Letter Combinations of a Phone Number

[LeetCode] Letter Combinations of a Phone Number

其實我一開始讀不懂題目。。我以為應該是出來的答案應該都是兩位的,我還特地拷貝AC程式碼執行一下才知道題目意思= =雖然看了懂了題意還是不會做 程式碼挺容易懂的,運用遞迴,以level為digits的遍歷指標,在遍歷每個指標對應的text組成out,總的來說是DFS的運用

class Solution {
public:
	vector<string> letterCombinations(string digits) {
		string text[] = { "abc","def","ghi","jkl","mno","pqrs","tuv","wxyz" };
		vector<
string>ans; if (digits.empty())return ans; string out = ""; letterConmbinationsDFS(digits, text, 0, out, ans); return ans; } void letterConmbinationsDFS(string digits, string text[], int level, string out, vector<string>& ans) { if (level == digits.size())ans.push_back(out)
; else { string str = text[digits[level] - '2']; for (int i = 0; i < str.size(); ++i) { out.push_back(str[i]); letterConmbinationsDFS(digits, text, level + 1, out, ans); out.pop_back(); } } } };