首页
首页

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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)]
}
}
支持一下
扫一扫,支持一下,爱你。
  • 微信扫一扫
  • 支付宝扫一扫