动态规划算法

寻找重复代码

2025-12-16  本文已影响0人  何以解君愁

 小明负责维护项目下的代码,需要查找出重复代码,用以支撑后续的代码优化,请你帮助小明找出重复的代码。
 重复代码查找方法:以字符串形式给出两行代码text1,text2(字符串长度1 < len(text1),len(text2) <= 100,由英文字母、数字和空格组成),找出两行代码中的最长公共子串。
 如果不存在公共子串,返回空字符串。 注意子串是连续的。
 输入描述:输入的参数text1,text2分别表示两行代码
 输出描述:输出任一最长公共子串。

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String text1 = sc.nextLine();
        String text2 = sc.nextLine();
        int m = text1.length();
        int n = text2.length();
        int[][] dp = new int[m+1][n+1];
        
        int max = 0;
        String ans = "";
        for(int i = 1;i < m+1;i++){
            for(int j = 1;j < n + 1;j++){
                if(text1.charAt(i - 1) == text2.charAt(j - 1)){
                    dp[i][j] = dp[i - 1][j - 1] + 1;
                    if(max < dp[i][j]){
                        max = dp[i][j];
                        ans = text1.substring(i - max,i);
                    }
                }
            }
        }
        System.out.print(ans);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读