题:输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序。即输出125、126、145、146。
代码如下:
#include<iostream>
#include<string>
using namespace std;
void PrintStr(string strA,string strB,int print[],int lenP,int strAstart,int strBstart)
{
if(lenP==strB.length())//满足条件输出
{
for(int i=0;i<lenP;i++)
cout<<print[i];
cout<<endl;
}
for(int i=strAstart;i<strA.length();i++)
{
for(int j=strBstart;j<strB.length();j++)
{
if(strA[i]==strB[j])
{
print[lenP]=i+1;
PrintStr(strA,strB,print,lenP+1,i+1,j+1);
}
}
}
}
void main()
{
string strA="abdbcc";
string strB="abc";
if(strA.empty()||strB.empty())
{
cout<<"string error!"<<endl;
return;
}
int lenA=strA.length();
int lenB=strB.length();
int *print=new int[lenB];
PrintStr(strA,strB,print,0,0,0);
}