Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.
Input:Digit string “23”
Output: [“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].
var digitMap = []string{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}
func letterCombinations(digits string) []string {
results := []string{}
if len(digits) < 1 {
return []string{}
}
letters := digitMap[int(digits[0] - '0')]
if len(digits) == 1 {
for _, v := range letters {
results = append(results, string(v))
}
} else {
for _, v := range letters {
for _, vs := range letterCombinations(string(digits[1:])) {
results = append(results, string(v)+string(vs))
}
}
}
return results
}