题解 | #公共子串计算#

公共子串计算

https://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        String s1 = scan.next();
        String s2 = scan.next();

        int cols = s1.length() + 1;
        int rows = s2.length() + 1;

        char[] ar1 = s1.toCharArray();
        char[] ar2 = s2.toCharArray();

        int[][] arr = new int[rows][cols];

        for (int i = 1; i < rows; i++) {
            for (int j = 1; j < cols; j++) {
                if (ar1[j - 1] == ar2[i - 1] )
                    arr[i][j] = arr[i - 1][j - 1] + 1;
            }
        }

        int max = 0;
        for (int i = 1; i < rows; i++) {
            for (int j = 1; j < cols; j++) {
                if (arr[i][j] > max)
                    max = arr[i][j];
            }
        }

        System.out.println(max);



    }

}

全部评论

相关推荐

头像
04-09 14:29
Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务