易语言验证码编辑距离算法源码
.版本 2
.程序集 窗口程序集1
.子程序 _按钮1_被单击
_启动窗口.标题 = “结果:” + 到文本 (编辑距离算法 (编辑框1.内容, 编辑框2.内容))
.子程序 编辑距离算法, 整数型
.参数 待对比, 文本型
.参数 对比, 文本型
.局部变量 point, 整数型, , "1,1"
.局部变量 long, 整数型
.局部变量 long2, 整数型
.局部变量 x, 整数型
.局部变量 y, 整数型
.局部变量 z, 整数型
.局部变量 i, 整数型
.局部变量 j, 整数型
long = 取文本长度 (待对比)
long2 = 取文本长度 (对比)
重定义数组 (point, 假, long + 1, long2 + 1)
.计次循环首 (long + 1, x)
point [x] [1] = x - 1
.计次循环尾 ()
.计次循环首 (long2 + 1, y)
point [1] [y] = y - 1
.计次循环尾 ()
.计次循环首 (long, i)
.计次循环首 (long2, j)
x = point [i] [j + 1] + 1
y = point [i + 1] [j] + 1
.如果 (取文本中间 (待对比, i, 1) = 取文本中间 (对比, j, 1))
z = 0 + point [i] [j]
.否则
z = 1 + point [i] [j]
.如果结束
.如果真 (x ≤ y 且 x ≤ z)
point [i + 1] [j + 1] = x
.如果真结束
.如果真 (y ≤ x 且 y ≤ z)
point [i + 1] [j + 1] = y
.如果真结束
.如果真 (z ≤ x 且 z ≤ y)
point [i + 1] [j + 1] = z
.如果真结束
.计次循环尾 ()
.计次循环尾 ()
返回 (point [long + 1] [long2 + 1])