1143: Longest Common Subsequence

class Solution:
    def longestCommonSubsequence(self, text1, text2):
	    
        @cache
        def lcs(t1, t2):
            if t1 >= len(text1):
                return 0
            if t2 >= len(text2):
                return 0
			
			# take it:
            if text1[t1] == text2[t2]:
                return 1 + lcs(1 + t1, 1 + t2)
            				
			# skip it:
            else:
	            skip_t1 = lcs(1 + t1, t2)
	            skip_t2 = lcs(t1, 1 + t2)
                return max(skip_t1, skip_t2)
        
        return lcs(0, 0)