版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HEYIAMCOMING/article/details/81168018
题目描述:
计算两个字符串的最大公共字串的长度,字符不区分大小写
Java实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str1 = sc.next();
String str2 = sc.next();
System.out.println(maxComSubstring(str1, str2));
}
}
private static int maxComSubstring(String str1, String str2) {
int max = 0;
int[][] dp = new int[str1.length()][str2.length()];
for(int i = 0; i < str1.length(); i++) {
if((str1.charAt(i)+"").equalsIgnoreCase(str2.charAt(0)+""))
dp[i][0] = 1;
}
for(int j = 0; j < str2.length(); j++) {
if((str1.charAt(0)+"").equalsIgnoreCase(str2.charAt(j)+""))
dp[0][j] = 1;
}
for(int i = 1; i < str1.length(); i++) {
for(int j = 1; j < str2.length(); j++) {
if((str1.charAt(i)+"").equalsIgnoreCase(str2.charAt(j)+""))
{
dp[i][j] = dp[i-1][j-1] + 1;
if(dp[i][j] > max) {
max = dp[i][j];
}
}
}
}
return max;
}
}
知识点:
- 注意dp的初始化