#+PROPERTY: STUDY_DECK_02 * TODO 1143. Longest Common Subsequence :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*1143. Longest Common Subsequence][1143. Longest Common Subsequence]] :END: 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. - For example, ~"ace"~ is a subsequence of ~"abcde"~. A *common subsequence* of two strings is a subsequence that is common to both strings. *Example 1:* #+begin_src Input: text1 = "abcde", text2 = "ace" Output: 3 Explanation: The longest common subsequence is "ace" and its length is 3. #+end_src *Example 2:* #+begin_src Input: text1 = "abc", text2 = "abc" Output: 3 Explanation: The longest common subsequence is "abc" and its length is 3. #+end_src *Example 3:* #+begin_src Input: text1 = "abc", text2 = "def" Output: 0 Explanation: There is no such common subsequence, so the result is 0. #+end_src *Constraints:* - ~1 <= text1.length, text2.length <= 1000~ - ~text1~ and ~text2~ consist of only lowercase English characters. ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def longestCommonSubsequence(self, text1: str, text2: str) -> int: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: int longestCommonSubsequence(string text1, string text2) { } }; #+end_src