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

    又是一个递归搜索题。

  • 相关阅读:
    Linux常用命令
    ServerSocketChannel和SocketChannel
    Java扫描包
    [BZOJ3874/AHOI2014]宅男计划
    [BZOJ4029/HEOI2015]定价
    [考试]20151012贪心
    [BZOJ4027/HEOI2015]兔子与樱花
    [考试]20151010
    [考试]20151009
    Test of String
  • 原文地址:https://www.cnblogs.com/dengeven/p/3766307.html
Copyright © 2011-2022 走看看