@@ -104,6 +104,41 @@ func letterCombinations_(digits string) []string {
104104 return tmp
105105}
106106
107+ // 解法三 回溯(参考回溯模板,类似DFS)
108+ var result []string
109+ var dict = map [string ][]string {
110+ " 2" : []string {" a" ," b" ," c" },
111+ " 3" : []string {" d" , " e" , " f" },
112+ " 4" : []string {" g" , " h" , " i" },
113+ " 5" : []string {" j" , " k" , " l" },
114+ " 6" : []string {" m" , " n" , " o" },
115+ " 7" : []string {" p" , " q" , " r" , " s" },
116+ " 8" : []string {" t" , " u" , " v" },
117+ " 9" : []string {" w" , " x" , " y" , " z" },
118+ }
119+
120+ func letterCombinationsBT (digits string ) []string {
121+ result = []string {}
122+ if digits == " " {
123+ return result
124+ }
125+ letterFunc (" " , digits)
126+ return result
127+ }
107128
129+ func letterFunc (res string , digits string ) {
130+ if digits == " " {
131+ result = append (result, res)
132+ return
133+ }
134+
135+ k := digits[0 :1 ]
136+ digits = digits[1 :]
137+ for i := 0 ; i < len (dict[k]); i++ {
138+ res += dict[k][i]
139+ letterFunc (res, digits)
140+ res = res[0 : len (res)-1 ]
141+ }
142+ }
108143
109144```
0 commit comments