每日一题 --- 17. 电话号码的字母组合[力扣][Go]

简介: 每日一题 --- 17. 电话号码的字母组合[力扣][Go]

题目:

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

解题代码:

// 回溯法,深度优先算法 官方题解
var phoneMap = map[uint8]string{
  50: "abc",
  51: "def",
  52: "ghi",
  53: "jkl",
  54: "mno",
  55: "pqrs",
  56: "tuv",
  57: "wxyz",
}
var combinations []string
func letterCombinations(digits string) []string {
  if len(digits) == 0 {
    return []string{}
  }
  combinations = []string{}
  backtrack(digits, 0, "")
  return combinations
}
func backtrack(digits string, index int, combination string) {
  if index == len(digits) {
    combinations = append(combinations, combination)
  } else {
    digit := digits[index]
    letters := phoneMap[digit]
    lettersCount := len(letters)
    for i := 0; i < lettersCount; i++ {
      backtrack(digits, index + 1, combination + string(letters[i]))
    }
  }
}

这题也可以使用广度优先来实现


相关文章
|
1月前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
34 6
|
3月前
|
Go
golang力扣leetcode 49.字母异位词分组
golang力扣leetcode 49.字母异位词分组
17 0
|
3月前
|
Go
golang力扣leetcode 17.电话号码的字母组合
golang力扣leetcode 17.电话号码的字母组合
23 0
|
3月前
leetcode-917:仅仅反转字母
leetcode-917:仅仅反转字母
28 0
|
3月前
leetcode-1220:统计元音字母序列的数目
leetcode-1220:统计元音字母序列的数目
30 0
|
3月前
|
Go
golang力扣leetcode 438.找到字符串中所有字母异位词
golang力扣leetcode 438.找到字符串中所有字母异位词
22 0
|
3月前
|
Java C++ Python
leetcode-242:有效的字母异位词
leetcode-242:有效的字母异位词
24 0
|
3月前
|
算法 测试技术 C#
【单调栈】LeetCode2030:含特定字母的最小子序列
【单调栈】LeetCode2030:含特定字母的最小子序列
|
4月前
|
存储 Java
17. 电话号码的字母组合 --力扣 --JAVA
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
29 0
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”

热门文章

最新文章