Java机试题:计算两个字符串的公共最大子串
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str1 = sc.nextLine(); String str2 = sc.nextLine(); // 最大公共子串,超不过两个字符串中最小的那个字符串长度 String min = str1; String max = str2; if(str1.length() > str2.length()){ max = str1; min = str2; } // 找出小字符串中,所有的子串 List<String> minList = new ArrayList<String>(); for (int i = 0; i < min.length(); i++) { for (int j = i+1; j <= min.length(); j++) { minList.add(min.substring(i, j)); } } // 在大字符串中找到匹配小字符串所有子串中,最大的长度 int maxLen = 0; for (int i = 0; i < minList.size(); i++) { if(max.indexOf(minList.get(i)) > -1){ if(minList.get(i).length() > maxLen){ maxLen = minList.get(i).length(); } } } System.out.println(maxLen); } }
题目来源:牛客网
浙公网安备 33010602011771号