Golang | Leetcode Golang题解之第17题电话号码的字母组合

题目:

题解:

Go 复制代码
var phoneMap map[string]string = map[string]string{
    "2": "abc",
    "3": "def",
    "4": "ghi",
    "5": "jkl",
    "6": "mno",
    "7": "pqrs",
    "8": "tuv",
    "9": "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 := string(digits[index])
        letters := phoneMap[digit]
        lettersCount := len(letters)
        for i := 0; i < lettersCount; i++ {
            backtrack(digits, index + 1, combination + string(letters[i]))
        }
    }
}
相关推荐
June`6 小时前
全排列与子集算法精解
算法·leetcode·深度优先
夏鹏今天学习了吗7 小时前
【LeetCode热题100(78/100)】爬楼梯
算法·leetcode·职场和发展
圣保罗的大教堂7 小时前
leetcode 712. 两个字符串的最小ASCII删除和 中等
leetcode
有一个好名字11 小时前
力扣-确定两个字符串是否接近
算法·leetcode·职场和发展
牛奔11 小时前
Go语言中结构体转Map优雅实现
开发语言·后端·macos·golang·xcode
独自破碎E12 小时前
【层序遍历】序列化二叉树
leetcode
菜鸟233号12 小时前
力扣518 零钱兑换II java实现
java·数据结构·算法·leetcode·动态规划
VT.馒头14 小时前
【力扣】2622. 有时间限制的缓存
javascript·算法·leetcode·缓存·typescript
独自破碎E14 小时前
【新视角】输出二叉树的右视图
leetcode
Ka1Yan15 小时前
[链表] - 代码随想录 160. 相交链表
算法·leetcode·链表