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]))
        }
    }
}
相关推荐
_不会dp不改名_9 小时前
leetcode_3010 将数组分成最小总代价的子数组 I
算法·leetcode·职场和发展
Kx_Triumphs12 小时前
计算几何-旋转卡壳两种实现方案(兼P1452题解
算法·题解
lingggggaaaa14 小时前
安全工具篇&Go魔改二开&Fscan扫描&FRP代理&特征消除&新增扩展&打乱HASH
学习·安全·web安全·网络安全·golang·哈希算法
Tisfy14 小时前
LeetCode 3637.三段式数组 I:一次遍历(三种实现)
算法·leetcode·题解·模拟·数组·遍历·moines
期末考复习中,蓝桥杯都没时间学了14 小时前
力扣刷题15
算法·leetcode·职场和发展
£漫步 云端彡15 小时前
Golang学习历程【第十篇 方法(method)与接收者】
开发语言·学习·golang
im_AMBER15 小时前
Leetcode 111 两数相加
javascript·笔记·学习·算法·leetcode
TracyCoder12315 小时前
LeetCode Hot100(21/100)——234. 回文链表
算法·leetcode·链表
@––––––15 小时前
力扣hot100—系列1
算法·leetcode·职场和发展
老鼠只爱大米15 小时前
LeetCode经典算法面试题 #236:二叉树的最近公共祖先(RMQ转化、Tarjan离线算法等五种实现方案详细解析)
算法·leetcode·二叉树·lca·并查集·最近公共祖先·rmq