返回题库

电话号码的字母组合

Letter Combinations of a Phone Number

专题
Algorithmic Programming / 算法编程
难度
L3
来源
Citadel

题目详情

问题:电话号码的字母组合

考察:字符串、递归

来源:Citadel

链接:https://www.jointaro.com/interviews/questions/letter-combinations-of-a-phone-number/

Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.

A mapping of digits to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.

 

Example 1:

Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]

Example 2:

Input: digits = ""
Output: []

Example 3:

Input: digits = "2"
Output: ["a","b","c"]

 

Constraints:

  • 0 <= digits.length <= 4
  • digits[i] is a digit in the range ['2', '9'].
解析

思路:建立数字到字母集合的映射,按输入数字回溯构造字符串。每一层选择当前数字对应的一个字母,长度达到输入长度时记录。

复杂度:时间 O(3^a 4^b),空间为递归深度和输出规模。