get]s
go]at

get -> go

delete:
ge -> go  , delete t
ge]t -> go]     (i, j) -> (i - 1, j)
cost = 1

change:
ge -> g  , change t to o
ge]t -> g]o     (i, j) -> (i - 1, j - 1)
cost = 1

insert:
get -> g  ,  add o
get] -> g]o     (i, j) -> (i, j - 1)
cost = 1

change':
get -> goat
ge]t -> goa]t   (i, j) -> (i - 1, j - 1)
cost = 0


for i := 1, ..., m:
  for j := 1, ..., n:
    d[i][j] := min (d[i - 1][j    ] + 1,
                    d[i - 1][j - 1] + (s[i] != t[j]),
                    d[i    ][j - 1] + 1)
