首页 > 其他 > 详细

LeetCode17:电话号码的字母组合

时间:2020-06-25 19:28:33      阅读:54      评论:0      收藏:0      [点我收藏+]

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

 技术分享图片

 

 

示例:

输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

这题主要采用回溯法,对输入的每个数字进行回溯,回溯到底部就把生成的字符串加入到返回值里面。

 1 class Solution {
 2 public:
 3     vector<string> ans;
 4     string gen;
 5     string dict[10] = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
 6     vector<string> letterCombinations(string digits) {
 7         if(digits.empty()) return ans;
 8         gen.resize(digits.size());
 9         backtrace(digits,0);
10         return ans;
11     }
12 
13     void backtrace(string &digits, int n){
14         if(n==digits.size()){
15             ans.push_back(gen);
16             return;
17         }
18         int w=digits[n]-0;
19         for(int i=0;i<dict[w].size();i++){
20             gen[n]=dict[w][i];
21             backtrace(digits,n+1);
22         }
23 
24     }
25 };

 

LeetCode17:电话号码的字母组合

原文:https://www.cnblogs.com/rookiez/p/13192649.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!