Loading

17. 电话号码的字母组合

17. 电话号码的字母组合

难度中等2253收藏分享切换为英文接收动态反馈

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

img

示例 1:

输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]

示例 2:

输入:digits = ""
输出:[]

示例 3:

输入:digits = "2"
输出:["a","b","c"]
func letterCombinations(digits string) []string {
    m=[]string{"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}
    path=make([]byte,0)
    res=make([]string,0)
    dfs(digits,0)
    return res
}
var(
    path []byte
    res []string
    m []string
)
func dfs(dig string,index int){
    if index==len(dig){
        if dig==""{
            return
        }
        tmp:=make([]byte,len(dig))
        copy(tmp,path)
        res=append(res,string(tmp))
        return
    }
    dig1 :=int(dig[index]-'0')
    dig2:=m[dig1-2]
    for i:=0;i<len(dig2);i++{
        path=append(path,dig2[i])
        dfs(dig,index+1)
        path=path[:len(path)-1]
    }

}
posted @ 2023-01-09 16:26  suehoo  阅读(33)  评论(0)    收藏  举报