class Solution {
private:
map<char, vector<char> > dict;
public:
vector<string> letterCombinations(string digits) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
dict.clear();
dict['2'].push_back('a');
dict['2'].push_back('b');
dict['2'].push_back('c');
dict['3'].push_back('d');
dict['3'].push_back('e');
dict['3'].push_back('f');
dict['4'].push_back('g');
dict['4'].push_back('h');
dict['4'].push_back('i');
dict['5'].push_back('j');
dict['5'].push_back('k');
dict['5'].push_back('l');
dict['6'].push_back('m');
dict['6'].push_back('n');
dict['6'].push_back('o');
dict['7'].push_back('p');
dict['7'].push_back('q');
dict['7'].push_back('r');
dict['7'].push_back('s');
dict['8'].push_back('t');
dict['8'].push_back('u');
dict['8'].push_back('v');
dict['9'].push_back('w');
dict['9'].push_back('x');
dict['9'].push_back('y');
dict['9'].push_back('z');
vector<string> res;
dfs(digits, 0, "", res);
return res;
}
void dfs(string& dig, int idx, string cur, vector<string>& res)
{
if (idx == dig.size())
{
res.push_back(cur);
return;
}
for (int i = 0; i < dict[dig[idx]].size(); ++i)
{
dfs(dig, idx + 1, cur + dict[dig[idx]][i], res);
}
}
};
[Leetcode] Letter Combinations of a Phone Number
最新推荐文章于 2020-08-10 10:20:18 发布