Skip to content

Instantly share code, notes, and snippets.

@ahmdrz
Created September 2, 2016 10:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ahmdrz/ceb6adba9219b2af56cee11a78a000e1 to your computer and use it in GitHub Desktop.
Save ahmdrz/ceb6adba9219b2af56cee11a78a000e1 to your computer and use it in GitHub Desktop.
// http://rosettacode.org/wiki/Levenshtein_distance#Go
package main
import "fmt"
func levenshtein(s, t string) int {
if s == "" { return len(t) }
if t == "" { return len(s) }
if s[0] == t[0] {
return levenshtein(s[1:], t[1:])
}
a := levenshtein(s[1:], t[1:])
b := levenshtein(s, t[1:])
c := levenshtein(s[1:], t)
if a > b { a = b }
if a > c { a = c }
return a + 1
}
func main() {
s1 := "rosettacode"
s2 := "raisethysword"
fmt.Printf("distance between %s and %s: %d\n", s1, s2,
levenshtein(s1, s2))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment