我是靠谱客的博主 踏实仙人掌,最近开发中收集的这篇文章主要介绍编辑距离java,编辑距离算法 的Java实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

编辑距离是指通过添加删除或更改字符这三种操作,由一个字符串转到另一个字符串所需的最少次数。

俄国科学家Liechtenstein在1956年首次提出了这个概念.

对于编辑距离的实现,可以通过下述方式进行计算:

假设有字符串a,b,计算由a至b的编辑距离ed(a,b),此处设定La,Lb分别表示a,b字符串的长度

<1>La==0||Lb==0  –> ed(a,b)=La+Lb

<2>如果La,Lb都不等于0,那么 ed(a,b)=min{ed(a-1,b)+1, ed(a,b-1)+1,ed(a-1,b-1)+b(a,b)}     b(a,b)=1 if a的最后一个字符等于b的最后一个字符,否则b(a,b)=0

————————Code——————————-

package Levenshtein;

/**

* @author c0rpse * 编辑距离算法的实现 *

*/

public class Levenshtein {

public static void main(String[] args){

String a = "abc",b = "def";

System.out.println(levenshtein(a,b));

}

public static int levenshtein(String x,String y){

int xl = x.length(),yl=y.length();

if(xl==0||yl==0) return yl+xl;

String x_1=xl-1>0?x.substring(0, xl-1):"";

String y_1=yl-1>0?y.substring(0, yl-1):"";

int x__1=levenshtein(x_1,y)+1;

int y__1=levenshtein(y_1,x)+1;

int x_y=levenshtein(x_1,y_1)+(x.substring(xl-1).equals(y.substring(yl-1))?0:1);

return min(min(x__1,y__1),x_y);

}

public static int min(int x,int y)

{

return x<y?x:y;

}

}

最后

以上就是踏实仙人掌为你收集整理的编辑距离java,编辑距离算法 的Java实现的全部内容,希望文章能够帮你解决编辑距离java,编辑距离算法 的Java实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部