class Solution {
public:
vector<string> letterCombinations(string digits) {
vector<string> m = { "", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" };
vector<string> ret;
if (digits.size() == 0) return ret;
string str = "";
int index = 0;
backTrace(digits, m, str, index, ret);
return ret;
}
private:
void backTrace(string digits, vector<string> m, string str, int index, vector<string> &ret) {
if (digits.size() == index) {
ret.push_back(str);
return;
}
for (int i = 0; i < m[(digits[index]) - '0'].size(); ++i) {
backTrace(digits, m, str + m[(digits[index]-'0')][i], index + 1, ret);
}
}
};
一开始vector<string> ret没有加&,导致每次递归都被清零。。。
leetcode17
最新推荐文章于 2023-02-05 01:42:54 发布