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

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

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

JAVA

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            String str1 = sc.nextLine();
            String str2 = sc.nextLine();
            //判断长度
            String longStr = (str1.length() > str2.length())? str1:str2;
            String shortStr = (str1.length() < str2.length())? str1:str2;
            String maxLenStr = "";
            for(int i=0;i<shortStr.length();i++){
                for(int j=i+1;j<shortStr.length();j++){
                    //找到最长的公共子串
                    String subStr = shortStr.substring(i,j+1);
                    if(longStr.contains(subStr) && subStr.length() > maxLenStr.length()){
                        //开始找到最长的公共子串的处理。
                        maxLenStr = subStr;
                    }
                }
            }
            System.out.println(maxLenStr);
        }

    }
}
全部评论
最大长度为1的公共子串,返不回来,你这从长度2开始的
点赞 回复 分享
发布于 2021-10-27 14:17

相关推荐

头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
评论
5
4
分享
牛客网
牛客企业服务