15 lines
285 B
Go
15 lines
285 B
Go
package editdistance
|
|
|
|
func WagnerFisher(a, b string) int {
|
|
if len(a) == 0 {
|
|
return len(b)
|
|
}
|
|
if len(b) == 0 {
|
|
return len(a)
|
|
}
|
|
if a[0] == b[0] {
|
|
return WagnerFisher(a[1:], b[1:])
|
|
}
|
|
return 1 + min(WagnerFisher(a[1:], b), WagnerFisher(a, b[1:]), WagnerFisher(a[1:], b[1:]))
|
|
}
|