

题目
解决代码及点评
/*
求两个字符串的最小公共子串
这道题简单的两个字符串遍历即可
*/
#include <iostream>
using namespace std;
const int N = 1000;
char* go(char *str1,char *str2)
{
int maxindex;
int maxlength = 0;
int i,j;
for(i=0;str1[i];i++)
{
for(j=0;str2[j];j++)
{
for(int k=0;str1[i+k]==str2[j+k] && (str1[i+k] || str2[i+k]);k++)
if(k>maxlength)
{
maxindex = j;
maxlength = k+1;
}
}
}
char *result = new char[maxlength+1];
for(i=0;i<maxlength;i++)
result[i] = str2[maxindex++];
result[i] = '/0';
return result;
}
int main()
{
char *str1 = "abractyeyt";
char *str2 = "dgdsaeactyey";
cout<<go(str1,str2)<<endl;
system("pause");
return 0;
}
代码下载及其运行
代码下载地址:http://download.csdn.net/detail/yincheng01/6704519
解压密码:c.itcast.cn
下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:
1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”
2)在下拉框中选择相应项目,项目名和博客编号一致
3)点击“本地Windows调试器”运行
程序运行结果