最长连续公共字串C++

2024-01-10 16:15:55

输入两个字符串 s1,s2。输出最长连续公共子串长度和最长连续公共子串。

输入格式
一行,两个字符串 s1,s2,用空格隔开。

输出格式
第一行输出最长连续公共子串的长度,第二行输出最长连续公共子串。如果不唯一,则输出 s1中的最后一个。

数据范围
1≤|s1|,|s2|≤100 数据保证至少存在一个连续公共子串。

输入样例:
abcdefg qwercdefiok

输出样例:
4
cdef

#include<iostream>
using namespace std;
int main()
{
    string a,b,res;
    cin>>a>>b;
    for(int len=min(a.size(),b.size());len>=0;len--)
    {
        for(int i=a.size()-len;i>=0;i--)
        {
            for(int j=b.size()-len;j>=0;j--)
            {
                string x=a.substr(i,len);
                string y=b.substr(j,len);
                if(x==y)
                {
                    res=x;
                    break;
                }
            }
            if(res.size())
                break;
        }
        if(res.size())
            break;
    }
    cout<<res.size()<<endl<<res;
    return 0;
}           

文章来源:https://blog.csdn.net/qq_46380990/article/details/135502586
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。