给定一个仅包含数字
2-9的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例 1:
输入:digits = "23" 输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:
输入:digits = "" 输出:[]示例 3:
输入:digits = "2" 输出:["a","b","c"]提示:
0 <= digits.length <= 4digits[i]是范围['2', '9']的一个数字。
class Solution {
public:
vector<string> res;
string s;
string map[10]=
{
"", // 0
"", // 1
"abc", // 2
"def", // 3
"ghi", // 4
"jkl", // 5
"mno", // 6
"pqrs", // 7
"tuv", // 8
"wxyz", // 9
};
void func(string digits,int index)
{
if(index==digits.size())
{
res.push_back(s);
return;
}
int n=digits[index]-'0';
string ans=map[n];
for(int i=0;i<ans.size();i++)
{
s.push_back(ans[i]);
func(digits,index+1);
s.pop_back();
}
}
vector<string> letterCombinations(string digits) {
if(digits.size()==0)
return res;
func(digits,0);
return res;
}
};
博客围绕给定仅含数字的字符串,求解其能表示的所有字母组合展开。给出数字到字母的映射(与电话按键相同,1 无对应字母),还列举了示例并给出相关提示。


1万+

被折叠的 条评论
为什么被折叠?



