#!/usr/bin/ruby def edit_distance_ij(a, b, i, j) return j if i == 0 return i if j == 0 cij = a[i-1] == b[j-1] ? 0 : 1 [edit_distance_ij(a, b, i-1, j ) + 1, edit_distance_ij(a, b, i, j-1) + 1, edit_distance_ij(a, b, i-1, j-1) + cij].min end def edit_distance(a_string, b_string) edit_distance_ij(a_string, b_string, a_string.length, b_string.length) end if ARGV.length != 2 puts "Usage: editierdistanz WORT_1 WORT_2" else puts edit_distance(ARGV[0], ARGV[1]) end