Skip to content

Commit eab2220

Browse files
committed
2
1 parent 41e9165 commit eab2220

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
2+
const string Solution::keypad[8] = {"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
3+
4+
class Solution {
5+
public:
6+
static const string keypad[8];
7+
vector<string> letterCombinations(string digits) {
8+
// Start typing your C/C++ solution below
9+
// DO NOT write int main() function
10+
11+
vector<string> all_letters;
12+
string letter;
13+
letterCombinationsHelper(digits, 0, letter, all_letters);
14+
}
15+
void letterCombinationsHelper(string& digits, int step, string& letter, vector<string>& all_letters) {
16+
if (step == digits.size()) {
17+
all_letters.push_back(letter);
18+
return;
19+
}
20+
int x = digits[step] - '2';
21+
for (int i = 0; i < keypad[x].size(); i++) {
22+
letter += keypad[x][i];
23+
letterCombinationsHelper(digits, step + 1, letter, all_letters);
24+
letter.erase(letter.size() - 1, 1);
25+
}
26+
}
27+
};

0 commit comments

Comments
 (0)