public static void Lcs_length (String x,string y,int c[][]) {x= "" +x; Y= "" +y;for (int i=1;i<x.length (); i++) {c[i][0]=0;} for (int j=0;j<y.length (); j + +) {c[0][j]=0;} for (int i=1;i<x.length (), i++) {for (int j=1;j<y.length (); j + +) {if (X.charat (i) ==y.charat (j)) {c[i][j]=c[i-1][ j-1]+1;} else if (C[i-1][j]>=c[i][j-1]) {c[i][j]=c[i-1][j];} ELSE{C[I][J]=C[I][J-1];}}} public static void Print_lcs (int c[][],string x,int I,int j) {if (i==0| | j==0) return;if (C[i][j]==c[i-1][j]) {Print_lcs (c,x,i-1,j);} else if (C[i][j]==c[i][j-1]) {Print_lcs (c,x,i,j-1);} Else{print_lcs (c,x,i-1,j-1); System.out.print (X.charat (i-1) + "");}} public static void Main (string[] args) {String x= "Abcbdab"; String y= "Bdcaba"; int c[][]=new int[x.length () +1][y.length () +1]; Lcs_length (X,y,c); for (int. i=0;i<c.length;i++) {for (int j=0;j<c[i].length;j++) System.out.print (c[i][j]+ ""); System.out.println ();} Print_lcs (C,x,x.length (), y.length ());}
LCS algorithm Improvements