This is the regular editing dynamic programming, except that the diagonal as an extra possibility when a swap is possible.
M[i, j] = M[i-2, j-2] + 1 ; if A[i] == B[j-1] and A[i-1] == B[j] where i,j > 1