Leetcode #17 Letter Combinations of a Phone Number

原创 2015年07月08日 21:14:48

Given a digit string, return all possible letter combinations that the number could represent.

A mapping of digit to letters (just like on the telephone buttons) is given below.

Input:Digit string "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

Note:

Although the above answer is in lexicographical order, your answer could be in any order you want.

很简单,最基础的递归。

void gen(int dep,int len, string s,string ret, vector<string>& ans){
     string s1,s2,s3,s4;
     if(dep==0){
        ans.push_back(ret);
        //cout<<ret[0]<<endl;
        //cout<<ret[1]<<endl;
     }
    else{

     if(s[len-dep]=='2')
     {
       s1 = "a";
       s2 = "b";
       s3 = "c";
       s4 = "?";

     }
     if(s[len-dep]=='3')
     {
       s1 = 'd';
       s2 = 'e';
       s3 = 'f';
       s4 = '?';
     }
     if(s[len-dep]=='4')
     {
       s1 = 'g';
       s2 = 'h';
       s3 = 'i';
       s4 = '?';
     }
     if(s[len-dep]=='5')
     {
       s1 = 'j';
       s2 = 'k';
       s3 = 'l';
       s4 = '?';
     }
     if(s[len-dep]=='6')
     {
       s1 = 'm';
       s2 = 'n';
       s3 = 'o';
       s4 = '?';
     }
     if(s[len-dep]=='7')
     {
       s1 = 'p';
       s2 = 'q';
       s3 = 'r';
       s4 = 's';
     }
     if(s[len-dep]=='8')
     {
       s1 = 't';
       s2 = 'u';
       s3 = 'v';
       s4 = '?';
     }
     if(s[len-dep]=='9')
     {
       s1 = 'w';
       s2 = 'x';
       s3 = 'y';
       s4 = 'z';
     }



     gen(dep-1,len,s,ret+s1,ans);
     gen(dep-1,len,s,ret+s2,ans);
     gen(dep-1,len,s,ret+s3,ans);
     if(s4!="?")
        gen(dep-1,len,s,ret+s4,ans);
    }
}

vector<string> letterCombinations(string digits) {
    vector<string> ans;
    string ret;
    int len = digits.length();
    if(len==0)
        return ans;
    gen(len,len,digits,ret,ans);
    return ans;

    }


版权声明:本文为博主原创文章,未经博主允许不得转载。

[Java]LeetCode17 Letter Combinations of a Phone Number

[Java]LeetCode17 Letter Combinations of a Phone Number
  • fumier
  • fumier
  • 2015年04月24日 09:47
  • 960

LeetCode 17 Letter Combinations of a Phone Number(C,C++,Java,Python)

Problem: Given a digit string, return all possible letter combinations that the number could re...
  • runningtortoises
  • runningtortoises
  • 2015年05月10日 13:39
  • 2316

【LeetCode】LeetCode——第17题:Letter Combinations of a Phone Number

【LeetCode】LeetCode——第17题:Letter Combinations of a Phone Number
  • hujingshuang
  • hujingshuang
  • 2016年04月29日 21:40
  • 4668

(Java)LeetCode-17. Letter Combinations of a Phone Number

Given a digit string, return all possible letter combinations that the number could represent. A ma...
  • u012848330
  • u012848330
  • 2016年05月29日 22:35
  • 553

LeetCode --- 17. Letter Combinations of a Phone Number

题目链接:Letter Combinations of a Phone Number Given a digit string, return all possible letter combina...
  • makuiyu
  • makuiyu
  • 2015年01月30日 21:30
  • 2541

LeetCodet题解--17. Letter Combinations of a Phone Number(所有数字键盘组合所对应的所有字符集合)

链接 LeetCode题目:https://leetcode.com/problems/letter-combinations-of-a-phone-number/ GitHub代码:h...
  • gatieme
  • gatieme
  • 2016年04月07日 16:53
  • 1586

[leetcode] 17. Letter Combinations of a Phone Number ,python实现【medium】

Letter Combinations of a Phone Number Given a digit string, return all possible letter comb...
  • zl87758539
  • zl87758539
  • 2016年06月14日 22:25
  • 786

Combinations -- LeetCode

原题链接: http://oj.leetcode.com/problems/combinations/  这道题是NP问题的题目,时间复杂度没办法提高,用到的还是N-Queens中的方法:用一个循环递...
  • linhuanmars
  • linhuanmars
  • 2014年03月15日 00:16
  • 11433

LeetCode 17 Letter Combinations of a Phone Number 数字转为字母组合

题目: Given a digit string, return all possible letter combinations that the number could represent....
  • vvaaiinn
  • vvaaiinn
  • 2015年05月04日 10:38
  • 2845

17. Letter Combinations of a Phone Number-python

Leetcode上对deque不支持,所以用list和游标模拟队列,应为这个题目是队列的经典应用。原题Given a digit string, return all possible letter ...
  • daigualu
  • daigualu
  • 2017年07月02日 10:03
  • 577
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Leetcode #17 Letter Combinations of a Phone Number
举报原因:
原因补充:

(最多只允许输入30个字)