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

    又是一个递归搜索题。

  • 相关阅读:
    Servlet 06: jar包引入和web配置文件创建
    Servlet 05: Servlet生命周期方法
    Servlet 04: 什么是重定向
    Servlet 03: 通过xml配置文件配置servlet访问路径
    080 面向过程编程
    079 内置函数
    078 匿名函数
    077 递归
    076 生成器
    075 字典生成式
  • 原文地址:https://www.cnblogs.com/dengeven/p/3766307.html
Copyright © 2011-2022 走看看