首页 > 试题广场 >

电话号码

[编程题]电话号码
  • 热度指数:1481 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
九键输入法中 2~9 每个数字对应了若干个的字母,请找出给定数字组合对应的全部字母组合。

数据范围:数字长度  ,数字中保证不出现 0 和 

键盘数字对应的映射如下:
示例1

输入

"55"

输出

["jj","jk","jl","kj","kk","kl","lj","lk","ll"]
示例2

输入

"3"

输出

["d","e","f"]
package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param num string字符串 
 * @return string字符串一维数组
*/
func phoneNumber( num string ) []string {
    n2c:=map[byte]string{
        '2':"abc",
        '3':"def",
        '4':"ghi",
        '5':"jkl",
        '6':"mno",
        '7':"pqrs",
        '8':"tuv",
        '9':"wxyz",
    }
    ans:=[]string{}
    var dfs func(string,int)
    dfs=func(s string,idx int){
        if idx==len(num){
            ans=append(ans,s)
            return
        }
        for _,ch:=range []byte(n2c[num[idx]]){
            s+=string(ch)
            dfs(s,idx+1)
            s=s[:len(s)-1]
        }
    }
    dfs("",0)
    return ans
}

发表于 2023-03-28 21:42:07 回复(0)

问题信息

难度:
1条回答 2181浏览

热门推荐

通过挑战的用户

查看代码
电话号码