def levenshtein(a, b) case when a.empty? b.length when b.empty? a.length else d = Array.new(a.length + 1) { |s| Array.new(b.length + 1, 0) } (0..a.length).each do |i| d[i][0] = i end (0..b.length).each do |j| d[0][j] = j end (1..a.length).eac... 続きを読む