输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
来源:互联网 发布:通联数据面经 编辑:程序博客网 时间:2024/05/17 01:56
//************************************************************************//功能:输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序。即输出125、126、145、146.//参数:fir_str,第一个字符串; //sec_str,第二个字符串; //sec_str_length,第二个字符串长度;// tab[],存放连接次序的数组; //depth,字符串遍历深度; //position,存放字符串2中每个字符在字符串1中的位置//日期:2013.7.26//*************************************************************************//#include<stdio.h>#include<string.h>#include<stdlib.h>void display(char *fir_str,char *sec_str,char sec_str_length,int tab[],char depth,int position){int i;if(depth==sec_str_length){for(i=0;i<depth;i++){printf("%d",tab[i]);}printf("\n");}else{while(*fir_str) //将字符串1中的字符同字符串2中的比较,直到找到与2中一样的字符sec_str才执行++{if(*fir_str== *sec_str){tab[depth]=position+1;display(fir_str+1,sec_str+1,sec_str_length,tab,depth+1,position+1);//这个地方的len在主函数调用时,用strlen(fir_str),因为fir_str变化了,所以len随之变化;tab不要写成了tab[]}fir_str++;position++;}}}int main(){int tab[100];char *string1="abdbcc";char *string2="abc";display(string1,string2,strlen(string2),tab,0,0);system("pause");return 0;}
思路分析:
/**************************************************************举例:char *string1="aabdbcc";char *string2="abc";'a'位置: 1 2 / \ / \'b'位置: 3 5 3 5 / \ / \ / \ / \'c'位置:6 7 6 7 6 7 6 7while大循环里,首先在string1中找到第一个‘a’字符,然后用递归方法在剩下的“abdbcc”中以同样的方式找‘b’,然后‘c’......同理,第一次while循环结束,fir_str++,又在第二个位置发现了第二个‘a’,然后接着再递归找‘b’、‘c’,如此直到string1遍历完while(*fir_str) //将字符串1中的字符同字符串2中的比较,直到找到与2中一样的字符sec_str才执行++{......;fir_str++;position++;}也可以这样写:for(;*fir_str!='\0';fir_str++,position);或许好理解一些。**************************************************************/
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序
- 《程序员面试宝典》:输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序,即输出125,126,145,146
- 程序员面试宝典 8.2 典型递归问题: 面试例题1: 输入两个字符串,比如 abdbcc 和 abc, 输出第二个字符串在第一个字符串中的连接次序。即输出 125, 126, 145, 146.
- 输入两个字符串,比如abdbcc和abc,把abc在abdbcc中的连接次序输出
- 输入两个字符串,比如abdcc和abc,输出第二个字符串在第一个字符串中的连接次序
- 输入两个字符串,输出第二个字符串在第一个字符串中的连接次序
- 输出第二个字符串在第一个字符串中的连接次序(递归算法)
- 输出第二个字符串在第一个字符串中的次序
- 字符串问题:输出第二个字符串在第一个字符串中的连接次序
- 《程序员面试宝典》求取第二个字符串在第一个字符串中的连接次序---递归算法
- 输出第二个字符串在第一个字符串中的链接次序
- C语言:从键盘输入两个字符串,输出第一个字符串在第二个字符串中的位置
- js 输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符串
- 在字符串中删除特定的字符(字符串)。 题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 例如,输入”They are students.”和”aeiou”, 则删除之后的第一个字符串
- hdu 一只小蜜蜂...
- Java基础:泛型类型的子类及通配符的使用
- java.lang.IllegalArgumentException: Mapping directory location[url ...]does not denote a directory
- java SE6.0中ParsePosition的介绍
- 现有市场上常用的智能家居方式和问题
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
- FMDATABASE的一些基本操作小结
- C++命名规则【转】
- spring动态定时器
- mysql全备份和增量备份
- Java观察者模式例子
- hdu 1728 逃离迷宫
- binutils
- 单词数(hdu2072字典树)