12.电话号码的数字组合-回溯法
思路
package main
func letterCombinations(digits string) []string {
if len(digits) == 0 {
return []string{}
}
var numString = map[string][]string{
"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"},
}
result := make([]string, 0)
var dfs func(int, string)
dfs = func(i int, path string) {
if i >= len(digits) {
result = append(result, path)
return
}
for _, v := range numString[string(digits[i])] {
dfs(i+1, path+v)
}
}
dfs(0, "")
return result
}Last updated