golang算法--leetcode17
Posted 喜欢二福的沧月君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)] } }
以上是关于golang算法--leetcode17的主要内容,如果未能解决你的问题,请参考以下文章