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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String str1 = sc.nextLine();
        if (str.length() >str1.length()) {
            String str3 =str ;
            str = str1;
            str1 = str3;
        }//保证str是小的字符串,str1是大的字符串
        int d=0;
        String str5=null;
        for (int i = 0; i < str.length(); i++) {
            int c=0; //每一轮重新截取的时候要重置,否则前面c被计数后导致后面数据不准确
          for (int j = i+1; j <=str.length(); j++) {// j <=str.length()才能截取到str最后一位
             String str4 =str.substring(i, j);
             if (str1.contains(str4)) {
                 c=str4.length();
                 if (c>d){
                     d=c;
                   str5 =str4;
                 }
             }
          }

        }
       // System.out.println(d);
        System.out.println(str5);
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务