算法面试题一

时间:2022-02-19 13:11:22

输入两个字符串,比如“abbcddddbcc”,“abc”,输出第二个字符串在第一个字符串中的连接次序:

如:算法面试题一


代码如下,递归实现:


void findlink(char *begin,char *str1,char *str2,int *index,int num1,int num2,int num3){
if(num3==num2){
for(int k=0;k<num3;k++)
cout<<index[k-3]<<" ";
cout<<endl;
return;
}
int str1_length = strlen(str1);
int str2_length = strlen(str2);
int num = num3;
for(int i=0;i<str1_length;i++){
if(*(str1+i)==*str2){
*index = str1+i-begin;
findlink(begin,str1+i+1,str2+1,index+1,num1,num2,num+1);
}
}
}


int main(int argc, char* argv[])
{
char *str1="abbcddddbcc";
char *str2="abc";
int index[3];
findlink(str1,str1,str2,&index[0],strlen(str1),strlen(str2),0);
getchar();
return 0;
}