题目链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/
题目如下:
class Solution {
public:
vector<string> letterCombinations(string digits) {
if(digits.size()==0) return result;
backtracking(digits,0);
return result;
}
void backtracking(string digits,int startIndex){
if(startIndex==digits.size()){
result.push_back(path);
return;
}
int digit=digits[startIndex]-'0';//取到当前的数字字符
string letters=lettermap[digit];//取到当前字符对应的string
for(int i=0;i<letters.size();i++){//对当前的string中的char进行处理
path.push_back(letters[i]);
backtracking(digits,startIndex+1);
path.pop_back();
}
}
private:
const string lettermap[10]={//这里的是数字和对应字符之间的映射
"",//0
"",//1
"abc",//2
"def",//3
"ghi",//4
"jkl",//5
"mno",//6
"pqrs",//7
"tuv",//8
"wxyz",//9
};
vector<string> result;
string path;
};