İki dizi arasındaki en uzun ortak alt diziyi bulmak için bir algoritma tasarla
s1 = 'ABCDGH'
s2 = 'AEDFHR'
def LCS(s1, s2): 
m = len(s1) 
n = len(s2)
 
 # dp değerlerini depolamak için diziyi bildirme 
 L = [[Yok]*( n + 1) for _ in range(m + 1)] 
 
 """Aşağıdaki adımlar L[m + 1][n + 1]'i aşağıdan yukarıya oluşturun 
 Not: L[i] [j], (m + 1) aralığında i için X[0..i-1] 
 ve Y[0..j-1]"""
 LCS uzunluğunu içerir: 
 # önceki satırın tamamı sıfırdır, 
 # çünkü hiçbir ortak dizi bunu j için 
 kullanarak yapamaz (n + 1): 
 # tüm satırların ilk sütunları 0'dır 
 if i == 0 veya j == 0 : 
 L[i][j] = 0
 elif s1[i-1] == s2[j-1]: 
 L[i][j] = L[i-1][j- 1]+1
 else: 
 L[i][j] = max(L[i-1][j] , L[i][j-1]) 
 
 # L[m][ n], X[0..n-1] & Y[0..m-1] LCS uzunluğunu içerir 
 return L[m][n]