具体细节看上一篇
package com.hlj.test;
public class Main {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
Main m = new Main();
m.LCS("1234567890", "124567856489");
}
public void LCS(String s1,String s2){
int dp[][] = new int[s1.length()+1][s2.length()+1];
for (int i = 0; i <= s2.length(); i++) {
dp[0][i]=0;
}
for (int i = 0; i <= s1.length(); i++) {
dp[i][0]=0;
}
for (int i = 1; i <= s1.length(); i++) {
for (int j = 1; j < s2.length(); j++) {
if(s1.charAt(i-1)==s2.charAt(j-1)){
dp[i][j]=dp[i-1][j-1]+1;
}else{
dp[i][j]=0;
}
}
}
int max = dp[0][0];
int tempi = 0;
int tempj = 0;
for (int i = 0; i < dp.length; i++) {
for (int j = 0; j < dp[0].length; j++) {
System.out.print(dp[i][j]+" ");
if(max<dp[i][j]){
max = dp[i][j];
tempi = i;
tempj = j;
}
}
System.out.println();
}
System.out.println(tempi+" "+tempj);
while(dp[tempi][tempj]!=0){
System.out.print(s2.charAt(tempj-1));
tempi--;
tempj--;
}
}
}