求解最大公共子串:从较短字符串开始,截取不同长度、不同位置的子串,判断长字符串是否包含。

import java.util.*;

public class Main {
    public static void main(String[] args)  {
        Scanner scan=new Scanner(System.in);
        String input1=scan.nextLine();
        String input2=scan.nextLine();

        if(input1.length()<=input2.length()){
            System.out.println(result(input1,input2));
        }else{
            System.out.println(result(input2,input1));
        }

    }

    //求解最大公共子串长度,str1<str2长度
    public static int result(String str1,String str2){
        for(int i=str1.length();i>=0;i--){//子串的长度
            for(int j=0;j<=str1.length()-i;j++){//开始截取子串的位置
                String sub=str1.substring(j,j+i);
                if(str2.contains(sub)) return sub.length();
            }
        }
        return 0;
    }
}