练习

作者: REIGE | 来源:发表于2017-09-26 12:49 被阅读0次

查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        while(in.hasNext()){
            String s1 = in.nextLine();
            String s2 = in.nextLine();
            String max = s1.length() >= s2.length()?s1:s2;
            String min = s1.length() >= s2.length()?s2:s1;
            int l = 0;
            String s ="";
            for(int i=0;i<min.length();i++){
                for(int j=i+1;j<=min.length();j++){
                    if(max.contains(min.substring(i,j)) && j-i>l){
                        l=j-i;
                        s=min.substring(i,j);
                    }
                }
            }
            System.out.println(s);
        }
    }
}

相关文章

网友评论

      本文标题:练习

      本文链接:https://www.haomeiwen.com/subject/wpjsextx.html