http://blog.csdn.net/hrn1216/article/details/51534607
http://www.cnblogs.com/zhangchaoyang/articles/2012070.html
import java.util.ArrayList; import java.util.List; /** * Project: untitled * Package: PACKAGE_NAME * Date: 2017/10/29 21:56 * Author: Simeon */ public class LCS { public static ListMyLcs(char[] a, char[] b){ int[][] map = new int[b.length+1][a.length+1]; for (int i=0;i list = new ArrayList<>(); List list2 = new ArrayList<>(); int PositionA = a.length , PositionB = b.length; while (PositionA>0 && PositionB >0){ if (a[PositionA-1] == b[PositionB-1]){ list.add(a[PositionA-1]); PositionA--; PositionB--; }else if(map[PositionB-1][PositionA] > map[PositionB][PositionA-1] ){ PositionB--; }else PositionA--; } for (int w=list.size()-1;w>=0;w--){ list2.add(list.get(w)); } return list2; } public static void main(String[] args){ String a = "1A2C3D4B56"; String b = "B1D23CA45B6A"; System.out.println(MyLcs(a.toCharArray(),b.toCharArray())); } }
import java.util.ArrayList; import java.util.List; /** * Project: untitled * Package: PACKAGE_NAME * Date: 2017/10/29 21:56 * Author: Simeon */ public class LCS { public static int findLCS(String A, int n, String B, int m){ //字符串A长度n,B长度m int[][] map = new int[m+1][n+1]; for (int i=0;i