17. 电话号码的字母组合(题目链接:力扣)
思路,纯纯暴力题,非要搞个每个数字对应字符串长度不统一(就没办法写出通用函数根据数字计算返回字符串了),剪枝都不用减。
const string Str[9] = {"","abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
vector<string> result;
void backtracking(string& tmp, string& str, int index){
if(index >= str.size()){
result.push_back(tmp);
return;
}
string ch = Str[str[index]-'1'];
for(int i=0; i<ch.size(); i++){
tmp += ch[i];
backtracking(tmp, str, index+1);
tmp.resize(tmp.size()-1);
}
}
vector<string> letterCombinations(string digits) {
if(digits.size()==0) return result;
string s = "";
backtracking(s, digits, 0);
return result;
}