Leetcode Longest Common Subsequence Dynamic Programming