题解 | #查找两个字符串a,b中的最长公共子串#

查找两个字符串a,b中的最长公共子串

https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s11 = sc.nextLine();
        String s22 = sc.nextLine();
        //短字符串s11,长字符串s22
        String s1 = s11.length() > s22.length() ? s22 : s11;
        String s2 = s11.length() > s22.length() ? s11 : s22;
        //公共字符串的长度n,初始值设为短字符串的长度
        int n = s1.length();
        //flag用以标记是否找到最长公共子串
        boolean flag = false;
        //res存储找到的最长公共子串
        String res = "";
        while (!flag && n > 0) {
            for (int i = 0; i <= s1.length() - n; i++) {
                String s = s1.substring(i, i + n);
                //找到最长公共子串,将flag设为true,直接退出循环
                if (s2.contains(s)) {
                    res = s;
                    flag = true;
                    break;
                }
            }
            n--;
        }
        System.out.println(res);
    }
}

全部评论

相关推荐

01-07 15:50
四川大学 Java
明远湖摸鱼:同年级的同学,,简历可以大一点,这个有点太密集了,实习技术可以量化的尽量量化
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务