zoukankan      html  css  js  c++  java
  • 【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.

     1 class Solution {
     2 public:
     3     vector<string> letterCombinations(string digits) {
     4         mapping = {"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
     5         vector<string> ret;
     6         letterCombinationsCore(digits, "", ret);
     7         return ret;
     8     }
     9     void letterCombinationsCore(string digits, string sub, vector<string> &ret) {
    10         if (sub.size() == digits.size()) {
    11             ret.push_back(sub);
    12         } else {
    13             int i = digits[sub.size()] - '0';
    14             for (int j = 0; j < mapping[i - 2].size(); ++j) {
    15                 sub.push_back(mapping[i - 2][j]);
    16                 letterCombinationsCore(digits, sub, ret);
    17                 sub.pop_back();
    18             }
    19         }
    20     }
    21     vector<string> mapping;
    22 };
    View Code

    又是一个递归搜索题。

  • 相关阅读:
    微信小程序 模板语法-列表渲染
    Fast Matrix Calculation HDU
    AT4845 [ABC164E] Two Currencies
    [ABC127E] Cell Distance
    CF18E Flag 2
    CF10C Digital Root
    CF8C Looking for Order
    [ARC075B] Widespread
    旅行商问题
    AcWing 291. 蒙德里安的梦想
  • 原文地址:https://www.cnblogs.com/dengeven/p/3766307.html
Copyright © 2011-2022 走看看