-
Notifications
You must be signed in to change notification settings - Fork 122
/
Copy path0017. Letter Combinations of a Phone Number.cpp
45 lines (43 loc) · 1.35 KB
/
0017. Letter Combinations of a Phone Number.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// 17.✅ Letter Combinations of a Phone Number
class Solution
{
public:
vector<string> letterCombinations(string digits)
{
vector<string> ans;
if (digits.size() == 0)
return ans;
else if (digits.size() == 1)
{
if (digits[0] == '2')
return {"a", "b", "c"};
else if (digits[0] == '3')
return {"d", "e", "f"};
else if (digits[0] == '4')
return {"g", "h", "i"};
else if (digits[0] == '5')
return {"j", "k", "l"};
else if (digits[0] == '6')
return {"m", "n", "o"};
else if (digits[0] == '7')
return {"p", "q", "r", "s"};
else if (digits[0] == '8')
return {"t", "u", "v"};
else if (digits[0] == '9')
return {"w", "x", "y", "z"};
}
else if (digits.size() > 1)
{
vector<string> str1 = letterCombinations(digits.substr(0, 1));
vector<string> str2 = letterCombinations(digits.substr(1, digits.size() - 1));
for (int i = 0; i < str1.size(); ++i)
{
for (int j = 0; j < str2.size(); ++j)
{
ans.push_back(str1[i] + str2[j]);
}
}
}
return ans;
}
};