LeetCode 017 Letter Combinations of a Phone Number

题目描述:Letter Combinations of a Phone Number

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

分析:

递归

代码如下:

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 dep, int maxDep, string &s, string ans){
        if (dep == maxDep){
            ret.push_back(ans);
            return;
        }

        for(int i = 0; i < dict[s[dep]].size(); i++)
            dfs(dep + 1, maxDep, s, ans + dict[s[dep]][i]);
    }

    vector<string> letterCombinations(string digits) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        ret.clear();
        createDict();
        dfs(0, digits.size(), digits, "");
        return ret;
    }
};
时间: 2024-10-14 03:15:01

LeetCode 017 Letter Combinations of a Phone Number的相关文章

Java for LeetCode 017 Letter Combinations of a Phone Number

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. 解题思路: 使用DFS算法,JAVA实现如下: static String[] alpha = new String[] { " ",

[LeetCode] 017. Letter Combinations of a Phone Number (Medium) (C++/Java/Python)

索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 017.Letter_Combinations_of_a_Phone_Number (Medium) 链接: 题目:https://oj.leetcode.com/problems/letter-combinations-of-a-phone-number/ 代码(github):https://github.co

[LeetCode][JavaScript]Letter Combinations of a Phone Number

Letter Combinations of a Phone Number Total Accepted: 40709 Total Submissions: 157759My Submissions Question Solution Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just l

【leetcode】Letter Combinations of a Phone Number

Letter Combinations of a Phone Number 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" Outpu

leetCode 17. Letter Combinations of a Phone Number 字符串 | 回溯 | Medium

17. Letter Combinations of a Phone Number 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"Ou

LeetCode Solution:Letter Combinations of a Phone Number

Letter Combinations of a Phone Number Total Accepted: 17652 Total Submissions: 66854My Submissions Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephon

Leetcode dfs Letter Combinations of a Phone Number

Letter Combinations of a Phone Number Total Accepted: 15964 Total Submissions: 60700My Submissions Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephon

Leetcode 17. Letter Combinations of a Phone Number(水)

17. Letter Combinations of a Phone Number Medium Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephone buttons) is given

LeetCode #17 Letter Combinations of a Phone Number (M)

[Problem] 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