您的位置:首页 > 科技 > IT业 > 页面模板怎么用_海外网站搭建_在线磁力搜索引擎_百度seo公司电话

页面模板怎么用_海外网站搭建_在线磁力搜索引擎_百度seo公司电话

2025/7/15 8:40:12 来源:https://blog.csdn.net/yaodec/article/details/145501625  浏览:    关键词:页面模板怎么用_海外网站搭建_在线磁力搜索引擎_百度seo公司电话
页面模板怎么用_海外网站搭建_在线磁力搜索引擎_百度seo公司电话

这道题注意两个点。一是根据题目所给的键盘布局进行数字到英文字符串的映射,这一步可以用二维数组实现。二是这道题在递归的时候不需要缩小范围,这与之前写的组合题目有所不同。此题并不是在一个集合中不断递归遍历,而是递归另一个集合,所以不需要考虑递归时集合大小的改变。还有就是,虽然这道题是在完全不同的集合中递归(天然就考虑了组合的无序性),但是我们仍需要设置一个变量来控制for循环,保证每一次递归所遍历的集合在改变。大家可以结合下面的代码及详细注释理解此题。

代码及详细注释如下:

class Solution {
public://用二维数组映射数字按键对应的字符串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 s;void backtracking(int index,string digits){//递归终止条件:当找到满足个数的字符串组合时,退出递归if(s.size() == digits.size()){result.push_back(s);return; }int num = digits[index] - '0';//循环遍历当前集合for(int i = 0;i < letterMap[num].size();i++){s.push_back(letterMap[num][i]);//递归另一个集合backtracking(index + 1,digits);//回溯:将已经放入的字母弹出s.pop_back();}}vector<string> letterCombinations(string digits) {//优先考虑特殊情况if (digits.size() == 0) {return result;}//一般情况backtracking(0,digits);return result;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com