Skip to content

Instantly share code, notes, and snippets.

@thmain
Created May 27, 2018 04:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thmain/10a7f110d84fb6a42c8d03b794120209 to your computer and use it in GitHub Desktop.
Save thmain/10a7f110d84fb6a42c8d03b794120209 to your computer and use it in GitHub Desktop.
public class LongestCommonSubString {
public static int find(char [] A, char [] B){
int [][]LCS = new int [A.length+1][B.length+1];
// if A is null then LCS of A, B =0
for(int i=0;i<=B.length;i++){
LCS[0][i]=0;
}
// if B is null then LCS of A, B =0
for(int i=0;i<=A.length;i++){
LCS[i][0]=0;
}
//fill the rest of the matrix
for(int i=1;i<=A.length;i++){
for(int j=1;j<=B.length;j++){
if(A[i-1]==B[j-1]){
LCS[i][j] = LCS[i-1][j-1] +1;
}else{
LCS[i][j] = 0;
}
}
}
int result = -1;
for(int i=0;i<=A.length;i++){
for(int j=0;j<=B.length;j++){
if(result<LCS[i][j]){
result = LCS[i][j];
}
}
}
return result;
}
public static void main(String[] args) {
String A = "tutorialhorizon";
String B = "dynamictutorialProgramming";
System.out.println("LCS length : " + find(A.toCharArray(), B.toCharArray()));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment