题解 | #最长公共子串#

最长公共子串

http://www.nowcoder.com/practice/210741385d37490c97446aa50874e62d

//暴力解
#include<bits/stdc++.h>
using namespace std;
int main(){
    string str1,str2;
    cin>>str1>>str2;
    int max=0,pos=-1;
    int N=str1.size(),M=str2.size();
    for(int i=0;i<N;i++){
        for(int j=0;j<M;j++){
            int count=0;
            int x=i,y=j;
            while(str1[x]==str2[y]&&x<N&&y<M){
                count++;
                x++;
                y++;
            }
            if(count>max){
                max=count;
                pos=i;
            }
        }
    }
    if(pos==-1){
        cout<<-1<<endl;
        return 0;
    }
    else{
        for(int i=pos;i<pos+max;i++)
            cout<<str1[i];
        return 0;
    }
}
全部评论

相关推荐

像好涩一样好学:这公司我也拿过 基本明确周六加班 工资还凑活 另外下次镜头往上点儿
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务