You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
650 B

package phoneletters
var digitToLetters = map[rune]string{
'2': "abc",
'3': "def",
'4': "ghi",
'5': "jkl",
'6': "mno",
'7': "pqrs",
'8': "tuv",
'9': "wxyz",
}
func letterCombinations(digits string) []string {
if digits == "" {
return []string{}
}
combos := make([]string, 0, len(digits)*4)
rest := letterCombinations(digits[1:])
if len(rest) == 0 {
rest = []string{""}
}
letters := digitToLetters[rune(digits[0])]
for _, letter := range letters {
for _, r := range rest {
combos = append(combos, string(letter)+r)
}
}
return combos
}
func Combinations(digits string) []string {
return letterCombinations(digits)
}