Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

Levenshtein edit distance

Demo of the p/moul/x/daily/levenshtein library. The Levenshtein distance between two strings is the minimum number of single-character edits — insertions, deletions, or substitutions — needed to turn one string into the other. The library implements the classic dynamic-programming algorithm (à la Go's agext/levenshtein) fully rune-aware and on-chain.

Try it

Append two words as /<a>/<b>:

The classic example

kittensitting = 3:

  1. kittensitten (substitute ks)
  2. sittensittin (substitute ei)
  3. sittinsitting (insert g at the end)

API

  • Distance(a, b string) int — the edit distance.
  • Matrix(a, b string) [][]int — the full DP matrix.
  • Similarity(a, b string) int — a 0..100 similarity percentage.