pub fn levenshtein(a: &str, b: &str) -> usize
Compute the Levenshtein edit distance between two strings.
Uses a standard DP row-reduction approach — O(m*n) time, O(n) space.