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/
  • 相关阅读:
    Tomcat5配置mysql
    Eclipse完全手册
    MBR是什么
    必杀技公布——用特征码定位关键代码,秒杀MFC程序
    Google C++编程命名约定
    认识硬盘主引导扇区
    c++ const 用法详解
    主引导区
    C++ 关于struce结构体字节对齐
    Fedora 显示设备配置工具介绍
  • 原文地址:https://www.cnblogs.com/miria-486/p/10558587.html
Copyright © 2011-2022 走看看