zoukankan      html  css  js  c++  java
  • golang算法--leetcode17

    Letter Combinations of a Phone Number

    Given a digit string, return all possible letter combinations that the number could represent.

    A mapping of digit to letters (just like on the telephone buttons) is given below.

    Input:Digit string "23"
    Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
    

    Note:
    Although the above answer is in lexicographical order, your answer could be in any order you want.

    package main
    
    import (
        "fmt"
    )
    
    func letterCombinations(digits string) []string {
        if (len(digits)) == 0 {
            return nil
        }
        AllDigits := map[byte][]string{
            '0': {" "},
            '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"},
        }
        var cur string
        answer := make([]string, 0)
        dfs(digits, AllDigits, 0, cur, &answer)
        fmt.Println(answer)
        return answer
    }
    func dfs(digits string, AllDigits map[byte][]string, l int, cur string, answer *[]string) {
        if l == len(digits) {
            *answer = append(*answer, cur)
            return
        }
        for _, n := range AllDigits[byte(digits[l])] {
            cur = cur + n
            dfs(digits, AllDigits, l+1, cur, answer)
            cur = cur[:int(len(cur)-1)]
        }
    }
    https://necydcy.me/
  • 相关阅读:
    [编程题] 数组中的重复数字
    Redis数据结构之集合命令
    Redis数据结构之字符串命令
    Docker安装mysql
    后缀数组与字符串匹配
    牛客小白月赛11 Rinne Loves Edges
    牛客小白月赛11 Rinne Loves Xor
    牛客练习赛39 B.选点
    欧拉函数
    51 Nod 1700 首尾排序法
  • 原文地址:https://www.cnblogs.com/miria-486/p/10558587.html
Copyright © 2011-2022 走看看