deflistAt(list,i):returnlist[i-1]deflgT(x,y):m=len(x)n=len(y)l=matrix(m+1,n+1)# bereits mit 0 initialisiertforiin[1..m]:forjin[1..n]:if(listAt(x,i)==listAt(y,j)):l[i,j]=l[i-1,j-1]+1else:l[i,j]=max(l[i-1,j],l[i,j-1])#debug:printlreturnl[m,n]
var('a,b,c,d')# damit a,b,c und d als math. variablen verwendet werden können# und nicht explizit als characters 'a','b','c' und 'd' angegeben werden müssenX=[a,b,c,b,d,a,b]Y=[b,d,c,a,b,a]printlgT(X,Y)