17. 电话号码的字母组合

Introduction

Question:17. 电话号码的字母组合

Analysis

简单的回溯题目。没啥好说的。

Implement

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
unordered_map<char, string> m{ {'2',"abc"},{'3',"def"},
{'4', "ghi"},{'5',"jkl"},{'6',"mno"},
{'7',"pqrs"},{'8',"tuv"},{'9',"wxyz"},
};
vector<string> letterCombinations(string digits) {
vector<string> res;
if (digits.size() == 0) return res;
string s;
letterCombinations(digits, 0, res, s);
return res;
}
void letterCombinations(string &digits, int index, vector<string> &res, string &s) {
if (index == digits.size()) {
res.push_back(s);
return;
}
for(auto c: m[digits[index]]) {
s.push_back(c);
letterCombinations(digits, index+1, res, s);
s.pop_back();
}
}

One More Thing