题目描述
https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/
思路题解
dfs法,很简单
唯一的坑在于slice的传参,要记住传指针。否则在单个测试用例是没问题的,提交就不行。原因应该是由于后台循环调用程序导致。
import (
"strconv"
)
func letterCombinations(digits string) []string {
var ans []string
if digits==""{
return nil
}
dfs(digits,"",0,&ans)
return ans
}
var m =map[int]string{
2:"abc",
3:"def",
4:"ghi",
5:"jkl",
6:"mno",
7:"pqrs",
8:"tuv",
9:"wxyz",
}
func dfs(s,tmp string,i int,ans *[]string){
if i==len(s){
*ans=append(*ans,tmp)
return
}
index,_:=strconv.Atoi(string(s[i]))
for j:=0;j<len(m[index]);j++{
next:=string([]byte(m[index])[j])
dfs(s,tmp+next,i+1,ans)
}
}