1 class Solution {
2 private:
3 map<
char, vector<
char> >
dict;
4 vector<
string>
ret;
5 public:
6 void createDict()
7 {
8 dict.clear();
9 dict[
'2'].push_back(
'a');
10 dict[
'2'].push_back(
'b');
11 dict[
'2'].push_back(
'c');
12 dict[
'3'].push_back(
'd');
13 dict[
'3'].push_back(
'e');
14 dict[
'3'].push_back(
'f');
15 dict[
'4'].push_back(
'g');
16 dict[
'4'].push_back(
'h');
17 dict[
'4'].push_back(
'i');
18 dict[
'5'].push_back(
'j');
19 dict[
'5'].push_back(
'k');
20 dict[
'5'].push_back(
'l');
21 dict[
'6'].push_back(
'm');
22 dict[
'6'].push_back(
'n');
23 dict[
'6'].push_back(
'o');
24 dict[
'7'].push_back(
'p');
25 dict[
'7'].push_back(
'q');
26 dict[
'7'].push_back(
'r');
27 dict[
'7'].push_back(
's');
28 dict[
'8'].push_back(
't');
29 dict[
'8'].push_back(
'u');
30 dict[
'8'].push_back(
'v');
31 dict[
'9'].push_back(
'w');
32 dict[
'9'].push_back(
'x');
33 dict[
'9'].push_back(
'y');
34 dict[
'9'].push_back(
'z');
35 }
36
37 void dfs(
int dep,
int maxDep,
string s,
string ans)
38 {
39 if (dep ==
maxDep)
40 {
41 ret.push_back(ans);
42 return;
43 }
44
45 for(
int i =
0; i < dict[s[dep]].size(); i++
)
46 dfs(dep +
1, maxDep, s, ans +
dict[s[dep]][i]);
47 }
48
49 vector<
string> letterCombinations(
string digits) {
50
51 ret.clear();
52 createDict();
53 dfs(
0, digits.size(), digits,
"");
54 return ret;
55 }
56 };
转载于:https://www.cnblogs.com/tanghulu321/archive/2013/05/13/3074988.html