Leetcode 1250 Solution

This article provides solution to leetcode question 1250 (longest-common-subsequence).

https://leetcode.com/problems/longest-common-subsequence

Solution

import numpy as np

class Solution:
    def longestCommonSubsequence(self, text1: str, text2: str) -> int:
        if len(text1) == 0 or len(text2) == 0:
            return 0

        dp = [[0 for _ in range(len(text2))] for _ in range(len(text1))]

        for i in range(0, len(text1)):
            for j in range(0, len(text2)):
                ch1 = text1[i]
                ch2 = text2[j]

                if ch1 == ch2:
                	dp[i][j] = 1 + (dp[i - 1][j - 1] if i > 0 and j > 0 else 0)
                else:
                    dp[i][j] = max(dp[i - 1][j] if i > 0 else 0, dp[i][j - 1] if j > 0 else 0)
                
        return dp[-1][-1]