add C++ solution2

This commit is contained in:
ShusenTang 2020-06-17 08:46:54 +08:00 committed by GitHub
parent bed7d5f49b
commit cf9aaf5cc7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -53,5 +53,26 @@ public:
```
## 思路二
见[此处](https://leetcode.com/problems/letter-combinations-of-a-phone-number/discuss/8454/My-C%2B%2B-solution-use-DFS).
有时间了再自己实现一下。
``` C++
class Solution {
private:
const vector<string>digit2char{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
void DFS(const string &digits, string out, vector<string> &res){
int start = out.size();
if(start == digits.size()){
res.push_back(out);
return;
}
for(char c: digit2char[digits[start]-'0'])
DFS(digits, out+c, res);
}
public:
vector<string> letterCombinations(string digits) {
vector<string>res;
if(digits.size() == 0) return res;
string out;
DFS(digits, out, res);
return res;
}
};
```