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

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

    本题利用队列实现即可

    如“23”,

    首先获取2

    然后相对列中插入a,b,c

    然后弹出a,在a后面附件下面一个数字,即ad,ae,af,插入队列即可

    vector<string> letterCombinations(string digits) {
        vector<string> res;
        if(digits.length() == 0) {res.push_back("");return res;}
        string num_map[10]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
        queue<string> que;
        int n = num_map[digits[0]-'0'].length();
        if(n == 0) que.push("");
        else{
            for(int i = 0; i <n;  ++ i){
                string tmp = string(1,num_map[digits[0]-'0'][i]);
                que.push(tmp);
            }
        }
        int index =1;
        while(!que.empty() && index < digits.length()){
            int cnt = que.size();
            while(cnt-->0){
                string a = que.front();que.pop();
                int len = num_map[digits[index]-'0'].length();
                if(len == 0) que.push(a);
                else{
                    for(int i = 0; i < len; ++ i ){
                        string tmp = a+num_map[digits[index]-'0'][i];
                        que.push(tmp);
                    }
                }
            }
            index++;
            
        }
        while(!que.empty()) {res.push_back(que.front());que.pop();}
        return res;
    }
  • 相关阅读:
    AngularJS7那些不得不说的事故
    Python和C++的混合编程(使用Boost编写Python的扩展包)
    为OPENCV添加freetype支持并显示中文字符(在mac上编译opencv及contrib库)
    OpenProject基础使用介绍
    负载均衡
    如何搭建wordpress ,wecenter
    nginx 模块
    Nginx
    http 协议
    ssh
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3806955.html
Copyright © 2020-2023  润新知