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

[LeetCode] Letter Combinations of a Phone Number 回溯

时间:2015-01-15 18:08:11      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

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"].



这题其实不难,注意好递归传入的参数便可以了。
#include <vector>
#include <string>
#include <iostream>
using namespace std;


class Solution {
public:
    vector<string> letterCombinations(string digits) {
        ret.clear();
        if(digits.size()<=0)
            ret.push_back("");
        else
            help_f(0,digits,"");
        return ret;
    }
    vector<string> ret;
    vector<vector<char> >mp{{ },
                            {},
                            {a,b,c},
                            {d,e,f},
                            {g,h,i},
                            {j,k,l},
                            {m,n,o},
                            {p,q,r,s},
                            {t,u,v},
                            {w,x,y,z}};
    void help_f(int nowIdx,string & digits,string curStr)
    {
        if(nowIdx==digits.size()){
            ret.push_back(curStr);
            return ;
        }
        int curNum = int(digits[nowIdx] - 0);
        for(int i =0;i<mp[curNum].size();i++)
            help_f(nowIdx+1,digits,curStr+mp[curNum][i]);
    }
};

int main()
{
    Solution sol;
    vector<string> ret=sol.letterCombinations("");
    for(int i=0;i<ret.size();i++)
        cout<<ret[i]<<endl;
    return 0;
}

 

[LeetCode] Letter Combinations of a Phone Number 回溯

标签:

原文地址:http://www.cnblogs.com/Azhu/p/4226585.html

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