一、题目
二、题解
枚举每一个位置可能的值即可,如23,第一个位置2可能是abc,第二个位置3可能是def,按照位枚举即可
class Solution {
public:
vector<string> hash = {"", "", "abc", "def", "ghi","jkl", "mno", "pqrs", "tuv", "wxyz"};
vector<string> res;
string path, num;
int n;
void dfs(int u) {
if (u == n) {
res.push_back(path);
return;
}
int idx = num[u] - '0';
for (auto x : hash[idx]) {
path += x;
dfs(u + 1);
path.pop_back();
}
}
vector<string> letterCombinations(string digits) {
num = digits;
n = num.size();
if (num.empty()) return res;
dfs(0);
return res;
}
};