123456789101112131415161718192021222324252627282930313233343536373839 |
- package main
- var mBtn = map[byte][]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"},
- }
- func letterCombinationsIter(digits string, last []string) []string {
- if len(digits) == 0 {
- return last
- }
- res := make([]string, 0)
- char := mBtn[digits[0]]
- for _, v := range last {
- for _, c := range char {
- res = append(res, v+c)
- }
- }
- return letterCombinationsIter(digits[1:], res)
- }
- func letterCombinations(digits string) []string {
- if len(digits) == 0 {
- return []string{}
- }
- return letterCombinationsIter(digits[1:], mBtn[digits[0]])
- }
- /* func main() {
- fmt.Println(letterCombinations("23"))
- fmt.Println(letterCombinations("234"))
- }
- */
|