zoukankan      html  css  js  c++  java
  • 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;
        }
    };
  • 相关阅读:
    深入理解javascript原型和闭包(5)——instanceof
    深入理解javascript原型和闭包(4)——隐式原型
    启动mongodb的方式
    继承的几种方式
    npm install express 安装失败
    npm insta --savell和npm install --save-dev的区别
    express笔记之一安装
    mongoVUE安装配置
    nodejs笔记之一简介
    nodejs配置之二NPM配置之gulp使用时出现的错误
  • 原文地址:https://www.cnblogs.com/510602159-Yano/p/4278884.html
Copyright © 2011-2022 走看看