Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Math._
- object EditDistance extends App {
- def minimum(i1: Int, i2: Int, i3: Int) = min(min(i1, i2), i3)
- def distance(str1: String, str2: String): Int = {
- val dist = Array.tabulate(str2.length + 1, str1.length + 1) { (i, j) => if (j == 0) i else if (i == 0) j else 0 }
- for (j <- 1 to str2.length; i <- 1 to str1.length)
- dist(j)(i) = if (str2(j - 1) == str1(i - 1)) dist(j - 1)(i - 1)
- else minimum(dist(j - 1)(i) + 1, dist(j)(i - 1) + 1, dist(j - 1)(i - 1) + 1)
- dist(str2.length)(str1.length)
- }
- }
Add Comment
Please, Sign In to add comment