编辑距离算法以及它的C#实现
原文:https://www.cnblogs.com/shihuajie/p/5772173.html
注意,原文中有以下表述不当的地方
- “扫描两字符串(n*m级的),如果:str1 == str2[j]”应该改为“扫描两字符串(n*m级的),如果:str1[i]== str2[j]”.并且,这里的扫描如果放在矩阵里面实现的话,其实是i-1和j-1(因为矩阵下标为1的位置对应的实际是字符串下标为0的位置
- 第二个图标中,(1,2)和(2,1)这两个位置的元素其实是没有变化的,还是两个1。这里是借用了这个位置来写东西,但是会造成误导
最后附上自己的C#实现,由于是初学,代码质量不敢保证,倒是可以使用:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
class SString
{
private int GetMin(int a,int b,int c)
{
if (a <= b && a <= c)
return a;
else if (b <= a && b <= c)
return b;
else
return c;
}
public int init(string s1,string s2)
{
if (s1.Length == )
return s2.Length;
else if (s2.Length == )
return s1.Length;
else
{
int s1length = s1.Length;
int s2length = s2.Length;
int[,] martix = new int[s1length + , s2length + ];
for(int i=;i<=s1length;i++)
{
martix[i, ] = i;
}
for(int j=;j<=s2length;j++)
{
martix[, j] = j;
}
for(int i=;i<s1length+;i++)
for(int j=;j<s2length+;j++)
{
int temp;
if(s1[i-]==s2[j-])
temp=;
else
temp=;
martix[i, j] = GetMin(martix[i - , j] + , martix[i, j - ] + , martix[i - , j - ] + temp);
}
return martix[s1length, s2length];
}
}
}
class Program
{
static void Main(string[] args)
{
SString temp=new SString();
string te= Console.ReadLine();
string[] ans=te.Split();
Console.WriteLine(temp.init(ans[], ans[]));
}
}
}
编辑距离算法以及它的C#实现的更多相关文章
- Levenshtein Distance算法(编辑距离算法)
		编辑距离 编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符, ... 
- 字符串相似度算法(编辑距离算法 Levenshtein Distance)(转)
		在搞验证码识别的时候需要比较字符代码的相似度用到“编辑距离算法”,关于原理和C#实现做个记录. 据百度百科介绍: 编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个 ... 
- 字符串相似度算法(编辑距离算法 Levenshtein Distance)
		在搞验证码识别的时候需要比较字符代码的相似度用到“编辑距离算法”,关于原理和C#实现做个记录.据百度百科介绍:编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串 ... 
- 自然语言处理(5)之Levenshtein最小编辑距离算法
		自然语言处理(5)之Levenshtein最小编辑距离算法 题记:之前在公司使用Levenshtein最小编辑距离算法来实现相似车牌的计算的特性开发,正好本节来总结下Levenshtein最小编辑距离 ... 
- 用C#实现字符串相似度算法(编辑距离算法 Levenshtein Distance)
		在搞验证码识别的时候需要比较字符代码的相似度用到"编辑距离算法",关于原理和C#实现做个记录. 据百度百科介绍: 编辑距离,又称Levenshtein距离(也叫做Edit Dist ... 
- 编辑距离算法(Levenshtein)
		编辑距离定义: 编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数. 许可的编辑操作包括:将一个字符替换成另一个字符,插入一个字符,删除一个字符. 例如 ... 
- [转]字符串相似度算法(编辑距离算法 Levenshtein Distance)
		转自:http://www.sigvc.org/bbs/forum.php?mod=viewthread&tid=981 http://www.cnblogs.com/ivanyb/archi ... 
- Java实现编辑距离算法
		Java实现编辑距离算法 编辑距离,又称Levenshtein距离(莱文斯坦距离也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它 ... 
- Levenshtein distance 编辑距离算法
		这几天再看 virtrual-dom,关于两个列表的对比,讲到了 Levenshtein distance 距离,周末抽空做一下总结. Levenshtein Distance 介绍 在信息理论和计算 ... 
- C#实现Levenshtein distance最小编辑距离算法
		Levenshtein distance,中文名为最小编辑距离,其目的是找出两个字符串之间需要改动多少个字符后变成一致.该算法使用了动态规划的算法策略,该问题具备最优子结构,最小编辑距离包含子最小编辑 ... 
随机推荐
- 【BZOJ4868】[六省联考2017]期末考试(贪心)
			[BZOJ4868][六省联考2017]期末考试(贪心) 题面 BZOJ 洛谷 题解 显然最终的答案之和最后一个公布成绩的课程相关. 枚举最后一天的日期,那么维护一下前面有多少天可以向后移,后面总共需 ... 
- BUG关闭原因
			已解决:缺陷已经修复. 重复缺陷:是指在系统里相同原因的缺陷已经被其他人报告.在此缺陷被作为重复缺陷返回时,先不要立即取消.必须等到核查修复后,才在系统里取消.这是因为有些缺陷被误认为是重复缺陷,实际 ... 
- 构建SSH服务
			什么是SSH?简单说,SSH是一种网络协议,用于计算机之间的加密登录.如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露.最 ... 
- zabbix3.2监控mysql
			应用环境:ZABBIX一款强大的企业级可分布式的开源监控工具,从2.2版本开始支持MySQL监控(自带监控模板), 不过,默认添加MySQL模板后是无法使用的,这里小记一下部署监控MySQL的简单全过 ... 
- QML学习笔记(七)— 实现可拖拽、编辑、选中的ListView
			鼠标单击可选中当前项,头部呈绿色显示:按压当前项可进行拖拽更换列表项位置:点击数据可以进行编辑: GitHub:八至 作者:狐狸家的鱼 这里是自己定义的model,有些字体和颜色都是使用的全局属性, ... 
- A1021. Deepest Root
			A graph which is connected and acyclic can be considered a tree. The height of the tree depends on t ... 
- 【CF1141F2】Same Sum Blocks
			题解:发现可以通过枚举区间将区间和相同的元组记录在一个表中,对于答案来说,在同一个表中的元组的选择才会对答案产生贡献.发现每一个表中都是一个个区间,问题转化成了对于每一个表来说,选择若干个不相交的区间 ... 
- github在网页编写readme之后的操作
			study from : https://jingyan.baidu.com/article/f3e34a12a25bc8f5ea65354a.html 
- hdu 2973"YAPTCHA"(威尔逊定理)
			传送门 题意: 给出自然数 n,计算出 Sn 的值,其中 [ x ]表示不大于 x 的最大整数. 题解: 根据威尔逊定理,如果 p 为素数,那么 (p-1)! ≡ -1(mod p),即 (p-1)! ... 
- linux环境java入门
			1. 安装java开发环境 安装jre和jdk $ sudo apt-get install default-jre$ sudo apt-get install default-jdk 2. 设置环境 ... 
