题解 | #公共子串计算#

公共子串计算

https://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b

import java.util.*;

import java.io.*;
public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String a = br.readLine();
        String b = br.readLine();
        //使a为小串,减少循环次数
        if (a.length() > b.length()) {
            String temp = a;
            a = b;
            b = temp;
        }
        //1.此处使用标准的动态规划会使用n^2的时间和空间复杂度,不符合题目的进阶要求,需要使用n^3时间n空间复杂度
        //2.原:dp[i][j]:a[i]及b[j]为尾的最长公共子串->dp[i][j]= a[i]==b[j]?dp[i-1][j-1]+1:0
        //3.现:暴力求解,将a从大到小截取字符串与b对比,知道b包含截取的字符串为止
        int max = 0;
        //先循环需要截取的长度
        for (int n = a.length(); n > 0; n--) {
            //循环截取的起始下标
            for (int j = 0; j < a.length() - n + 1; j++) {
                if (b.contains(a.substring(j, j + n))) {
                    System.out.println(n);
                    return;
                }
            }
        }
        System.out.println(0);

    }
}

全部评论

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务