ここでは、最長共通部分列問題(LCS)について、 「プログラミングコンテストチャレンジブック(第2版)」(通称:蟻本)の p56 を例に、python3 で実装する方法を紹介します。
 DP(動的計画法)で実装しています。

# 入力
n = 4
m = 4
s = 'abcd'
t = 'becd'
#DPテーブル(0 で初期化)
dp = [ [0 for i in range(m+1)] for j in range(n+1)]

def solve():
    for i in range(n):
        for j in range(m):
            #文字が一致する場合
            if s[i] == t[j]:
                dp[i+1][j+1] = dp[i][j] + 1
            #文字が一致しない場合
            else:
                dp[i+1][j+1] = max(dp[i][j+1], dp[i+1][j])
    print(dp[n][m])
    
    
if __name__ == '__main__':
    solve()