思路:这题是在不同的集合里面求组合。
回溯三部曲:
- 定义两个全局变量,result存放结果集,path存放任何条件的结果。index是来获取dighits字符串数组中的具体数组,用来记录遍历的数字。
- 终止条件:当到达叶子节点,即index==strlen(digits)时,遍历的数字等于输入的个数时,result收集path,return。
- 单层搜索过程。处理节点、递归函数、回溯操作。
char *path;
int pathTop;
char **result;
int resultTop;
char *number[10] = {
"" , "" ,
"abc" , "def" , "ghi" , "jkl" ,
"mno" , "pqrs" ,"tuv" , "wxyz"
};
void backTrack(char *digits , int index){
if(index == strlen(digits)){
char *temp = malloc(sizeof(char)* index+1);
for(int i =0;i


