编辑距离算法(C#版本)
根据java版本移植
1 /// <summary> 2 /// 编辑距离算法 3 /// </summary> 4 public class EditDistance 5 { 6 /** 7 * 求三个数中的最小数Mar 1, 2007 8 * 9 * @param a 10 * @param b 11 * @param c 12 * @return 13 */ 14 private static int Minimum(int a, int b, int c) 15 { 16 int mi; 17 18 mi = a; 19 if (b < mi) 20 { 21 mi = b; 22 } 23 if (c < mi) 24 { 25 mi = c; 26 } 27 return mi; 28 } 29 30 /** 31 * 计算两个字符串间的编辑距离Mar 1, 2007 32 * @param s 33 * @param t 34 * @return 35 */ 36 public static int getEditDistance(String s, String t) 37 { 38 int[,] d; // matrix 39 int n = 0; // length of s 40 int m = 0; // length of t 41 int i; // iterates through s 42 int j; // iterates through t 43 char s_i; // ith character of s 44 char t_j; // jth character of t 45 int cost; // cost 46 47 // Step 1 48 49 n = s.Length; 50 m = t.Length; 51 if (n == 0) 52 { 53 return m; 54 } 55 if (m == 0) 56 { 57 return n; 58 } 59 d = new int[n + 1, m + 1]; 60 //d = new int[n+1][+1]; 61 62 // Step 2 63 64 for (i = 0; i <= n; i++) 65 { 66 d[i, 0] = 1; 67 } 68 69 for (j = 0; j <= m; j++) 70 { 71 d[0, j] = j; 72 } 73 74 // Step 3 75 76 for (i = 1; i <= n; i++) 77 { 78 s_i = s[i - 1]; 79 // Step 4 80 for (j = 1; j <= m; j++) 81 { 82 t_j = t[j - 1]; 83 // Step 5 84 if (s_i == t_j) 85 { 86 cost = 0; 87 } 88 else 89 { 90 cost = 1; 91 } 92 // Step 6 93 d[i, j] = Minimum(d[i - 1, j] + 1, d[i, j - 1] + 1, 94 d[i - 1, j - 1] + cost); 95 } 96 } 97 // Step 7 98 return d[n, m]; 99 100 } 101 102 103 }
转载于:https://www.cnblogs.com/lirenqing/archive/2012/12/24/2831634.html
编辑距离算法(C#版本)相关推荐
- 经典动态规划问题:最短编辑距离算法的原理及实现
编辑距离的定义 编辑距离(Edit Distance)最常用的定义就是Levenstein距离,是由俄国科学家Vladimir Levenshtein于1965年提出的,所以编辑距离一般又称Leven ...
- Levenshtein distance 编辑距离算法
这几天再看 virtrual-dom,关于两个列表的对比,讲到了 Levenshtein distance 距离,周末抽空做一下总结. Levenshtein Distance 介绍 在信息理论和计算 ...
- 最短编辑距离 python_最短编辑距离算法实现
一,算法介绍 在CS124课程的第一周提到 求解两个字符串相似度的算法---Minimum Edit Distance(最短编辑距离)算法.该算法在NLP(自然语言处理)中也会用到. 如何定义相似度呢 ...
- 2021-03-15 数据挖掘算法—K-Means算法 Python版本
数据挖掘算法-K-Means算法 Python版本 简介 又叫K-均值算法,是非监督学习中的聚类算法. 基本思想 k-means算法比较简单.在k-means算法中,用cluster来表示簇:容易证明 ...
- 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用
粒子群优化算法-Python版本和Matlab函数 particleswarm 调用 前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab ...
- ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别
ML之Hash_EditDistance:基于输入图片哈希化(均值哈希+差值哈希)即8*8个元素的单向vector利用编辑距离算法进行判别 目录 输出结果 代码实现 相关文章 ML之相似度计算:图像数 ...
- JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码)
JavaScript实现levenshteinDistance字符串编辑距离算法(附完整源码) levenshteinDistance.js完整源代码 # levenshteinDistance.te ...
- Levenshtein Distance算法(编辑距离算法)
编辑距离 编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符, ...
- java实现编辑距离算法(levenshtein distance),计算字符串或者是文本之间的相似度【附代码】
编辑距离算法其实就是,在规定的编辑操作(替换字符串.插入字符串.删除字符串)中,经过几步可以把一个字符串变成另一个字符串,而这个所需的步数就是你的编辑距离. 测试样例: str1 = abc str2 ...
最新文章
- vs2012html图片,简单几步 实现vs2010对html5的支持
- 《剑指offer》c++版本 6.从尾到头打印链表
- 求高光谱图像相关系数矩阵
- C++学习——C++中的四个智能指针
- windbg-内存破坏实例分析
- Django项目部署(nginx1.18+uwgsi)
- ajax 请求struts1,jquery ajax +struts1.3
- 通过swagger下载的文件乱码解决方法,求解
- 代码健壮性 —— 边界条件的判断
- 南京邮电大学matlab实验报告,南京邮电大学通信与信息处理江苏省实验教学示范中心...
- 计算机软件专业搞腾讯地图,腾讯地图电脑版
- IEEE standard for verilog (Expressions)
- gentoo适合做服务器系统吗,Mandriva、Gentoo发行版
- 利用Github快速搭建个人博客总结(亲测)
- SparkMllib模型选择与优化-网格搜索和交叉验证
- python之路_面向对象
- 职场中干好工作的18准则
- Java数组去重问题
- 当前版本与卡刷包android_手机端提取Android 8.x及以上版本卡刷包中的system文件
- FBI 网站被黑,黑客获取 100 万条联邦特工身份信息
热门文章
- requests cookie
- Pandas 表连接(Merge,join,concatenate)
- freecplus框架-PostgreSQL数据库操作
- java springmvc 后台读取文件,springMVC
- s7填表指令att_第五章 S7-200 指令系统.ppt
- PHP自动压缩CSS文件方法,php 压缩多个CSS文件的实现代码
- HCIBench_2.3.1部署_VSAN_测试工具
- Docker学习总结(33)——Docker环境下搭建 MySQL 主从复制
- 戏说云计算之PaaS,IaaS,SaaS
- Spring MVC学习总结(9)——Spring MVC整合swagger自动生成api接口文档