加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

【medium】17. Letter Combinations of a Phone Number 数字组合

发布时间:2020-12-14 04:32:12 所属栏目:大数据 来源:网络整理
导读:class Solution { public : vector string ans; // answers // dfs实现 void dfs ( int x, int l, string str, string digits, char phone[][ 4 ]){ if (x== l){ ans.push_back(str); return ; } int num = digits[x] - ‘ 0 ‘ ; for ( int i= 0 ;i 4 ;i++
class Solution {
public:
    vector<string> ans; // answers
    
    // dfs实现
    void dfs (int x,int l,string str,string digits,char phone[][4]){
        if (x==l){
            ans.push_back(str);
            return;
        }
        int num = digits[x] - 0;
        for (int i=0;i<4;i++){
            if (phone[num][i]){
                dfs(x+1,l,str+phone[num][i],digits,phone);
            }
        }
    }
    
    vector<string> letterCombinations(string digits) {
        char phone[10][4] = {{" "},{},{a,b,c},{d,e,f},{g,h,i},{j,k,l},{m,n,o},{p,q,r,s},{t,u,v},{w,x,y,z}};
        
        if (digits.length() == 0)
            return ans;
        
        // dfs算法!
        dfs(0,digits.length(),"",phone);
            
        return ans;
        
    }
};

给一个不包含‘0‘‘1‘的数字字符串,每个数字代表一个字母,请返回其所有可能的字母组合。

下图的手机按键图,就表示了每个数字可以代表的字母。

1 2
ABC
3
DEF
4
GHI
5
JKL
6
MNO
7
PQRS
8
TUV
9WXYZ

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读