zoukankan      html  css  js  c++  java
  • [LeetCode] 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"
    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.

     1 class Solution {
     2     unordered_map<char, vector<string>> ht  = {
     3              {'0', {" "}}, {'1', {""}}, {'2', {"a", "b", "c"}}, {'3', {"d", "e", "f"}},
     4              {'4', {"g", "h", "i"}}, {'5', {"j", "k", "l"}}, {'6', {"m", "n", "o"}},
     5              {'7', {"p", "q", "r", "s"}}, {'8', {"t", "u", "v"}}, {'9', {"w", "x", "y", "z"}},
     6     };       
     7 public:
     8     vector<string> letterCombinations(string digits) {
     9         vector<string> ret;
    10         int n = digits.size();
    11         
    12         if (n == 0) return ret;
    13     
    14         if (n == 1) return ht[digits[0]];
    15        
    16         vector<string> prev = letterCombinations(digits.substr(0, n - 1));
    17 
    18         for (auto s : prev){
    19             for (int i = 0; i < ht[digits[n-1]].size(); i++)
    20             ret.push_back(s+ht[digits[n-1]][i]);
    21         }
    22         
    23         return ret;
    24     }
    25 };
  • 相关阅读:
    HTTP协议详解【转】
    Spring中的IOC和AOP
    Servlet生命周期
    Struts2基本原理【转】
    继承映射的三种方式
    树状数组(两个树状数组累计)
    二维数组数组(区间更新+单点查询)
    东西海岸(逆序对)
    离散化+单点更新+区间求和
    单调栈+dp
  • 原文地址:https://www.cnblogs.com/amadis/p/5926503.html
Copyright © 2011-2022 走看看