abcdefg와 aabcefg에서 최장 공통 문자열은 efg이고, 최장 공통 부분수열은 abcefg이다. LCS 알고리즘은 이 문자열들을 찾는 것을 말한다.0을, 같다면 LCS[i-1][j-1] +1을 저장한다.


LCS[i-1][j]와 LCS[i][j-1] 중 큰 값을 가져오고, 같다면 LCS[i-1][j-1] + 1 을 저장한다. 비교하는 문자가 다를 때 최장 공통 문자열과 차이점을 보이는데, 이는 최장 공통 부분수열은 연속일 필요가 없기 때문에 이전의 최대 공통 부분 수열이 유지되어야 하기 때문이다.





LCS가 의미하는 것에는 최장 공통 문자열과 최장 공통 부분수열이 있습니다. 최장 공통 문자열은 연속된 부분 문자열이고, 최장 공통 부분수열은 연속되지 않은 부분 문자열입니다. LCS 알고리즘은 이 문자열을 찾는 알고리즘인데, 찾는 과정에서 이전까지 찾은 최장 공통 부분을 사용하는 점에서 DP라고 할 수 있습니다. 각 문자열의 길이가 M, N이라고 할 때, LCS의 시간 복잡도는 O(MN)이 됩니다.