输入两个字符串,比如abdbcc和abc,把abc在abdbcc中的连接次序输出
2012-12-03 11:33
232 查看
用了个递归,逐步深入,不过,有个问题,就是假如首个或者中间某个元素不存在,则不能对后面数据进行搜索输出,而且效率低
#include<iostream>
#include<assert.h>
using namespace std;
void fintrans(char*d,char*s,int k=0)
{
if(*s==NULL)
{
cout<<k<<endl;
return;
}
int count=strlen(d);
char*p=s;p++;
for(int i=0;i<count;i++)
{
if(d[i]==*s)
{
k=k*10+i+1;
fintrans(d,p,k);
k=k/10;
}
}
}
void fun(char*d,char*s)
{
assert(s);
assert(d);
fintrans(d,s,0);
}
void main()
{
char*s="bc";
char*d="abdbcc";
fun(d,s);
}
#include<iostream>
#include<assert.h>
using namespace std;
void fintrans(char*d,char*s,int k=0)
{
if(*s==NULL)
{
cout<<k<<endl;
return;
}
int count=strlen(d);
char*p=s;p++;
for(int i=0;i<count;i++)
{
if(d[i]==*s)
{
k=k*10+i+1;
fintrans(d,p,k);
k=k/10;
}
}
}
void fun(char*d,char*s)
{
assert(s);
assert(d);
fintrans(d,s,0);
}
void main()
{
char*s="bc";
char*d="abdbcc";
fun(d,s);
}
相关文章推荐
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
- 《程序员面试宝典》:输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序,即输出125,126,145,146
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
- 程序员面试宝典之输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序,即输出125,126,145,146
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
- 程序员面试宝典 8.2 典型递归问题: 面试例题1: 输入两个字符串,比如 abdbcc 和 abc, 输出第二个字符串在第一个字符串中的连接次序。即输出 125, 126, 145, 146.
- 输入两个字符串,比如abdcc和abc,输出第二个字符串在第一个字符串中的连接次序
- 输入两个字符串,输出第二个字符串在第一个字符串中的连接次序
- 按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345
- 输入一行字符串,找出出现的相同且长度最长的字符串,输出它及其首字母的置比如:“yyabcdagaerabceg”答案应该是abc
- 截取字符串。输入字符串和按照多大字节进行截取,输出结果:按照字节截取的字符串。注意:汉字占两个字节,所以输入的汉字不能截取为半个汉字!!!例子:输入“我ABC爱北京”,字节输入6,结果为:“我ABC”
- 按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345
- 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”
- 截取字符串(编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输...)
- 倒序输出一组字符串。例如输入:“478.abc”,输出:“cba.874”
- 怎么实现字符串的反转,如:输入abc,输出cba
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不
- 两个字符串 char* a, char* b,输出b在a中的位置次序.
- 将输入的字符串(字符串仅包含小写字母‘a’到‘z’),按照如下规则,循环转换后输出:a->b,b->c,…,y->z,z->a;若输入的字符串连续出现两个字母相同时,后一个字母需要连续转换2次。例如: