首页 > 其他分享 >17. 电话号码的字母组合c

17. 电话号码的字母组合c

时间:2024-03-08 16:00:25浏览次数:18  
标签:index 17 10 int char 电话号码 字母组合 array

C语言字符串细节真多啊,搞了好久。

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
char c[10][5]={" "," ","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
char temp[10];
void dfs(char** array,char* digits,int* returnSize,int index,int cindex,int n){//index是dights下标,cindex->temp
    if(index>n) return;
    if(digits[index]==0){
        for(int i=0;i<n;i++){
            array[*returnSize][i]=temp[i];
        }
        (*returnSize)++;
        return;
    }
    if(digits[index]!=0){
        int t=digits[index]-'0';
        int x=0;
        while(c[t][x]!=0){
            temp[cindex]=c[t][x++];
            dfs(array,digits,returnSize,index+1,cindex+1,n);
        }
    }
}

char** letterCombinations(char* digits, int* returnSize) {
    *returnSize=0;
    int n=0;
    while(digits[n]!='\0') n++;
    if(n==0) return NULL;
    for(int i=0;i<10;i++) temp[i]=0;
    char** array=(char**)malloc(sizeof(char*)*1000);
    for(int i=0;i<1000;i++)  array[i]=(char*)malloc(sizeof(char)*10);
    for(int i=0;i<1000;i++){
        for(int j=0;j<10;j++){
            array[i][j]=0;
        }
    }
    dfs(array,digits,returnSize,0,0,n);
    return array;
}

结果:

标签:index,17,10,int,char,电话号码,字母组合,array
From: https://www.cnblogs.com/llllmz/p/18061179

相关文章

  • AtCoder Regular Contest 171
    Preface小补一场ARC,D还是很有意思的但想了半天不会,鉴定为纯纯的彩笔A-NoAttacking考虑怎么放rook能使得留下来能放pawn的格子数量最多,手玩一下会发现先按照\((2,2),(4,4),(6,6),\cdots\)的顺序放,放满后再接着放\((1,1),(3,3),(5,5),\cdots\)是最优的手玩一下可以得出在放......
  • P4958 [COCI2017-2018#6] Mate 题解
    分析考虑DP。先考虑\(A\)的答案。定义状态函数\(f_{i,j}\)表示在子串\(S_{1\dotsi}\)中选\(j\)个,且第\(S_i\)必选的方案数。则有:\(f_{i,j}=C_{i-1}^{j-1}\)。再考虑\(B\)的答案。枚举每一个位置\(x\)。令\(sum_x=\sum\limits_{i=1}^{x-1}f_{i,n-1}[S_i=A]\)。......
  • P5017题解
    前言做这道题,首先要了解\(dp\)。\(dp\)一般有三个步骤(个人理解):根据题意确定状态。根据状态的定义推出状态转移方程,一般有两种:填表法和刷表法。填表法就是普通\(dp\),用前面的状态转移到现在的状态,例:\(f[i]=f[i-1]+a[i]\)。刷表法就是在现有的基础上(\(f[i]\)已知),去推出\(f[......
  • 【力扣】电话号码的组合(回溯法)
    问题描述classSolution{public:vector<string>res;stringpath;//charA[26]={'a','b','c','d','e','f','g',//'h','i','j','k&......
  • 【已解决】[图文步骤] message from server: “Host ‘172.17.0.1‘ is not allowed t
    写于2024.03.07北京.朝阳@目录报错信息环境现场解决方案步骤:成功最后报错信息先看看和你的报错一样不一样null,messagefromserver:"Host'172.17.0.1'isnotallowedtoconnecttothisMySQLserver"环境现场mac电脑使用docker部署了一个mysql。docker......
  • 运行时遇到Oracle错误1017 invalid username/password;login denied
    参考链接:https://answer.baidu.com/answer/land?params=7elCyy2%2BVQFLNLJM1h81dr5QZQQgc1gH3Jx0mKtGyC9iN883lLAjVKkqqFwgT9IkwDSCCV6LpBhAaZmXkqXteDsXxjanzrzpWVxBkZhfR3Unz5gw02%2BImYJ2Z%2Bvnm92UuArsoipr6J4Lg4wWW8llDohcXIR6bJhJl2%2Fy598QiTvvwPJAYShha1DQ3DoUCfGRi%2BD......
  • codeforce 1700-1900
    3.6LonelyMountainDungeons 算贡献算了半天还错了,这种采用容斥可以减少细节处理,代码注释有#include<bits/stdc++.h>usingnamespacestd;#defineendl"\n"#defineintlonglongtypedeflonglongll;voidsolve(){intn,b,x;cin>>n>>b>&......
  • P3957 [NOIP2017 普及组] 跳房子
    原题链接题解二分加动态维护区间最大值注意设立变量的含义,改变变量值的规则code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;llsum[500005]={0};structunit{llx,v;booloperator<(constunit&b)const{returnb.v>v;}//}room[5000......
  • 617. 合并二叉树 c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*mergeTrees(structTreeNode*root1,structTreeNode*root2){if(!root1&&!roo......
  • LeetCode75 1768.交替合并字符串
    1768.交替合并字符串https://leetcode.cn/problems/merge-strings-alternately/description/?envType=study-plan-v2&envId=leetcode-75publicStringmergeAlternately(Stringword1,Stringword2){intlen1=word1.length();intlen2=word2.length()......