LeetCode - 电话号码的字母组合

问题陈述
给出一个包含2-9数字的字符串,返回该数字可能代表的所有可能的字母组合。以任何顺序返回答案。
下面给出了一个数字与字母的映射(就像电话按钮上的一样)。请注意,1并没有映射到任何字母。
问题陈述摘自:https://leetcode.com/problems/letter-combinations-of-a-phone-number
例子1:
Input: digits = "23"
例2:
Input: digits = ""
例3:
Input: digits = "2"
限制条件。
- 0 <= digits.length <= 4
解释
这个问题可以用迭代和递归两种方法来解决。我们将在博客中讨论递归的解决方案。
递归法
每个数字(除了0和1)可以代表3到4个不同的字母。为了存储这些数据,我们可以使用一个哈希图,其中的键是数字,其值是相应的字符串。
递归函数将尝试所有的字母,按字母顺序映射到当前的数字,并再次调用递归函数来处理下一个数字,并将传递给当前的输出字符串。
例如,如果数字是34,数字3被映射为 "def"。对于映射为 "ghi "的第4位数字,我们在所有的d、e和f上附加字符g、h和i,这将产生dg、dh、di、eg、eh、ei以及fg、fh、fi。
算法
- initialize hashmap with key as digit and value with the corresponding string.
C++解决方案
class Solution {
Golang解决方案
var letters = [...]string{"", "", "abc", "def", "ghi", "jkl",
Javascript的解决方案
const map = {
让我们试运行一下我们的算法,看看这个解决方案是如何工作的。
Input: digits = "23"
原文发表于 https://alkeshghorpade.me.
LeetCode - 电话号码的字母组合》最初发表在《Nerd For Tech》杂志上,人们通过强调和回应这个故事来继续对话。