码迷,mamicode.com
首页 > 其他好文 > 详细

Letter Combinations of a Phone Number

时间:2016-03-01 20:52:16      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

遍历所有的可能。

 1 class Solution {
 2     private:
 3     vector<string> res;
 4     map<char,string> num;
 5 public:
 6    void initial()
 7    {
 8        
 9         num[2]="abc";
10         num[3]="def";
11         num[4]="ghi";
12         num[5]="jkl";
13         num[6]="mno";
14         num[7]="pqrs";
15         num[8]="tuv";
16         num[9]="wxyz";  
17    }
18       
19     void dfsdigits(int layer,int depth,string digits,string ans)
20     {
21         if(layer==depth)
22        {
23            res.push_back(ans);
24            return ;
25        }
26        for(int i=0;i<num[digits[layer]].size();i++)
27        {
28            dfsdigits(layer+1,depth,digits,ans+num[digits[layer]][i]);
29        }
30     }
31     vector<string> letterCombinations(string digits) {
32         if(digits.empty()) return res;
33         initial();
34        
35        dfsdigits(0,digits.size(),digits,"");
36        return res;
37     }
38     
39 };

 

下面这种是循环,设中间变量

class Solution {
public:
   
    vector<string> letterCombinations(string digits) {
       vector<string> res;
       string num[10]={"0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
       if(digits.empty()) return res;
       res.push_back("");
       for(int i=0;i<digits.size();i++)
       {
           vector<string> temp;
           for(int j=0;j<num[digits[i]-0].size();j++)
             for(int k=0;k<res.size();k++)
             temp.push_back(res[k]+num[digits[i]-0][j]);
             res=temp;
       }
         
         
       return res;
    }
    
};

 

Letter Combinations of a Phone Number

标签:

原文地址:http://www.cnblogs.com/daocaorenblog/p/5232297.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!