Longest Common Subsequence
Medium
String
Dynamic Programming
Given two strings `text1` and `text2`, return *the length of their longest **common subsequence***. If there is no common subsequence, return `0`. A **subsequence** of a string is a new string generated from the original string with some characters (can be none) deleted without changing the relative order of the remaining characters.
Example 1
Input: text1 = "abcde", text2 = "ace"
Output: 3
Example 2
Input: text1 = "abc", text2 = "abc"
Output: 3
Example 3
Input: text1 = "abc", text2 = "def"
Output: 0

Constraints

  • 1 <= text1.length, text2.length <= 1000
  • text1 and text2 consist of only lowercase English characters.
Time Complexity
O(m*n)
Space Complexity
O(m*n)
14
Case 1
Input: "abcde" "ace"
Expected: 3
Case 2
Input: "abc" "abc"
Expected: 3
Case 3
Input: "abc" "def"
Expected: 0