最长递公共增子序列
import java.util.*; public class Main{ public static void main(String[] Args){ Scanner scanner = new Scanner(System.in); String str1 = scanner.nextLine(); String str2 = scanner.nextLine(); str1 = " "+str1; str2=" "+str2; int[][] c=new int[str1.length()][str2.length()]; int[][]b=new int[str1.length()][str2.length()]; LCS(str1,str2,c); } public static void LCS(String str1,String str2,int[][]c){ int max=0; for(int i=0;i<str1.length();++i){ c[i][0]=0; } for(int i=0;i<str1.length();++i){ c[0][i]=0; } for(int i=1;i<str1.length();++i){ for(int j=1;j<str2.length();++j){ if(str1.charAt(i)==str2.charAt(j)){ c[i][j]=c[i-1][j-1]+1; if(max<c[i][j]){ max=c[i][j]; } } } } System.out.println(max); } }