Longest Common Subsequence
Source
Given two strings, find the longest common subsequence (LCS).
Your code should return the length of LCS.
Example
For "ABCD" and "EDCA", the LCS is "A" (or "D", "C"), return 1.
For "ABCD" and "EACB", the LCS is "AC", return 2.
Clarification
What's the definition of Longest Common Subsequence?
https://en.wikipedia.org/wiki/Longest_common_subsequence_problem
http://baike.baidu.com/view/2020307.htm
Java
public class Solution {
public int longestCommonSubsequence(String A, String B) {
int lenA = A.length();
int lenB = B.length();
int[][] lcs = new int[lenA+1][lenB+1];
for(int i=1; i<=lenA; i++){
for(int j=1; j<=lenB; j++){
if(A.charAt(i-1)==B.charAt(j-1)){
lcs[i][j] = lcs[i-1][j-1]+1;
}
else{
lcs[i][j] = Math.max(lcs[i-1][j], lcs[i][j-1]);
}
}
}
return lcs[lenA][lenB];
}
}