您的位置:首页 > 编程语言 > C语言/C++

求两个字符串公共子串的最长长度

2016-09-15 12:02 323 查看
输入:两个字符串,长度小于100

输出:两个字符串公共子串的最长长度

例:

输入: str1:asdgfghdsgfs str2:dasfdsgfse

输出:5 因为最长子串dsgfs的长度为5

#include<iostream>
#include"string"
using namespace std;

void main()
{
while (true)
{
string str1,str2;//定义两个string变量
cin>>str1;
cin>>str2;
string max,min;
//交换最长最短字符串
if (str1.size()<str2.size())
{
max = str2;
min = str1;
}else
{
max = str1;
min = str2;
}
int res[100] = {0};//存储结果
int index = 0;
for (int i = 0; i < max.size(); i++)
{
int nums = 0;
for (int j = 0; j < min.size(); j++)
{
while(max[i]==min[j]&&i<max.size()&&j<min.size())
{
i++;
j++;
nums++;
}
}
res[index] = nums;
index++;
}
int bigest = 0;
for (int i = 0; i < index; i++)
{
if (res[i]>bigest)
bigest = res[i];
}
cout<<"公共字符串中最长长度为:"<<bigest;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string 字符串 C++