2021-09-16:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。按键2对应:‘

Posted 福大大架构师每日一题

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-09-16:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。按键2对应:‘相关的知识,希望对你有一定的参考价值。

2021-09-16:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。按键2对应:‘a’, ‘b’, ‘c’。按键3对应:‘d’, ‘e’, ‘f’。按键4对应:‘g’, ‘h’, ‘i’。按键5对应:‘j’, ‘k’, ‘l’。按键6对应:‘m’, ‘n’, ‘o’。按键7对应:‘p’, ‘q’, ‘r’, ‘s’。按键8对应:‘t’, ‘u’, ‘v’。按键9对应:‘w’, ‘x’, ‘y’, ‘z’。示例 1:输入:digits = “23”,输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]。示例 2:输入:digits = “”,输出:[]。示例 3:输入:digits = “2”,输出:[“a”,“b”,“c”]。

福大大 答案2021-09-16:

自然智慧。递归。

代码用golang编写。代码如下:

package main

import "fmt"

func main() {
    digits := "23"
    ret := letterCombinations(digits)
    fmt.Println(ret)
}

var phone = [][]byte{
    {'a', 'b', 'c'},      // 2    0
    {'d', 'e', 'f'},      // 3    1
    {'g', 'h', 'i'},      // 4    2
    {'j', 'k', 'l'},      // 5    3
    {'m', 'n', 'o'},      // 6
    {'p', 'q', 'r', 's'}, // 7
    {'t', 'u', 'v'},      // 8
    {'w', 'x', 'y', 'z'}, // 9
}

// "23"
func letterCombinations(digits string) []string {
    ans := make([]string, 0)
    if len(digits) == 0 {
        return ans
    }
    str := []byte(digits)
    path := make([]byte, len(str))
    process(str, 0, &path, &ans)
    return ans
}

func process(str []byte, index int, path *[]byte, ans *[]string) {
    if index == len(str) {
        *ans = append(*ans, string(*path))
    } else {
        cands := phone[str[index]-'2']
        for _, cur := range cands {
            (*path)[index] = cur
            process(str, index+1, path, ans)
        }
    }
}

执行结果如下:


左神java代码

以上是关于2021-09-16:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。按键2对应:‘的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 将根与叶数相加。给定仅包含0-9的数字的二叉树,每个根到叶路径可以表示数字。一个例子

LeetCode 17.电话号码的字母组合

2021-09-06:给表达式添加运算符。给定一个仅包含数字 0-9 的字符串 num 和一个目标值整数 target ,在 num 的数字之间添加 二元 运算符(不是一元)+- 或 * ,返回所有(

对于仅包含数字的给定字符串,返回所有有效IP地址组合的最佳方法是什么?

Leetcode篇:电话号码的字母组合

leetcode 17 电话号码的数字组合