@@ -104,6 +104,41 @@ func letterCombinations_(digits string) []string {
104
104
return tmp
105
105
}
106
106
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
+ }
107
128
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
+ }
108
143
109
144
```
0 commit comments