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 环境变量 设置 etc profile
    Linux 升级glibc-2.14 失败 我遇到的问题
    qt窗口的切换
    qt事件机制---事件范例
    qt中的事件机制
    qt的信号与槽函数
    linux下qt的安装
    qt中的udp编程
    qt中的tcp编程
    qt中的多线程
  • 原文地址:https://www.cnblogs.com/dengeven/p/3766307.html
Copyright © 2011-2022 走看看