题目描述
题目描述
小明负责维护项目下的代码,需要查找出重复代码,用以支撑后续的代码优化,请你帮助小明找出重复的代码。重复代码查找方法:以字符串形式给出两行代码(字符审长度1< length < 100,由英文字母、数字和空格组成),找出两行代码中的最长公共子串 注:如果不存在公共子串,返回空字符串
输入
输入的参数 text1,text2 分别表示两行代码
输出
输出任一最长公共子串
样例输入
hello123world1
hello123abc4
样例输出
hello123
解题思路
本题要求找最长公共子串,可得知字串是连续字串。可以用String的substring方法通过双指针遍历不断截取短字符串,通过String的contains方法判断长字符串是否包含短字符串。
AC代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String text1 = sc.nextLine();
String text2 = sc.nextLine();
String minStr,maxStr;
String resStr = "";
if(text1.length() <= text2.length()){
minStr = text1;
maxStr = text2;
}else {
minStr = text2;
maxStr = text1;
}
for(int i=0; i<minStr.length(); i++){
for(int j=i+1; j<=minStr.length(); j++){
String temp = minStr.substring( i, j);
if(maxStr.contains(temp) && temp.length() > resStr.length()){
resStr = temp;
}
}
}
System.out.println(resStr);
}
}