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

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

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String string1 = in.nextLine();
        String string2 = in.nextLine();
        
        String commonStr = "";
        if (string1.length() < string2.length()) {
            commonStr = getCommonStr(string1, string2);
        } else {
            commonStr = getCommonStr(string2, string1);
        }
        System.out.println(commonStr);
    }

    private static String getCommonStr(String str1, String str2) {
        String tmp = "";
        for (int i=0; i< str1.length(); i++) {
            for (int j=i; j <= str1.length(); j++) {
                String sub = "";
                if (j == str1.length()) {
                    sub = str1.substring(i);
                } else {
                    sub = str1.substring(i, j);
                }
                if (str2.indexOf(sub) != -1) {
                    if (sub.length() > tmp.length()) {
                        tmp = sub;
                    }
                }
            }
        }
        return tmp;
    }
}

全部评论

相关推荐

牛客10001:问就是六个月,全国可飞,给钱就干
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务