您的位置:首页 > 其它

leetcode Letter Combinations of a Phone Number

2013-09-26 21:28 381 查看
Letter Combinations of a Phone NumberJan 27 '125504 / 16698

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.

class Solution {

private:

    map<char, vector<char> > dict;

    vector<string> ret;

    

public:

    void createDict()

    {

        dict.clear();

        dict['2'].push_back('a');

        dict['2'].push_back('b');

        dict['2'].push_back('c');

        dict['3'].push_back('d');

        dict['3'].push_back('e');

        dict['3'].push_back('f');

        dict['4'].push_back('g');

        dict['4'].push_back('h');

        dict['4'].push_back('i');

        dict['5'].push_back('j');

        dict['5'].push_back('k');

        dict['5'].push_back('l');

        dict['6'].push_back('m');

        dict['6'].push_back('n');

        dict['6'].push_back('o');

        dict['7'].push_back('p');

        dict['7'].push_back('q');

        dict['7'].push_back('r');

        dict['7'].push_back('s');

        dict['8'].push_back('t');

        dict['8'].push_back('u');

        dict['8'].push_back('v');

        dict['9'].push_back('w');

        dict['9'].push_back('x');

        dict['9'].push_back('y');

        dict['9'].push_back('z');

    }

    

    void dfs(int depth, int maxdepth, string digits, string value)

    {

        if(depth == maxdepth)

        {

            ret.push_back(value);

        }

        for(int i=0; i<dict[digits[depth]].size(); i++)

        {

            dfs(depth+1, maxdepth, digits, value+dict[digits[depth]][i]);

        }

    }

    vector<string> letterCombinations(string digits) {

        // Start typing your C/C++ solution below

        // DO NOT write int main() function

       createDict();

       ret.clear();

       string temp;

       dfs(0, digits.size(), digits, temp);

       return ret;

    }

    

    

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: