LCS算法 文本对比的实现
根据上篇文章所说,填充二维数组的数据
String[] text1Words = text1.split(""); String[] text2Words = text2.split("");int text1Length = text1Words.length; int text2Length = text2Words.length;int[][] lcsResult = new int[text1Length + 1][text2Length + 1];
for (int i = 0; i <= text1Length-1; i++) {for (int j = 0; j <= text2Length - 1 ; j++) {if (text1Words[i].equals(text2Words[j])) {lcsResult[i][j] = lcsResult[i + 1][j + 1] + 1;} else {lcsResult[i][j] = Math.max(lcsResult[i + 1][j], lcsResult[i][j + 1]);}} }
下面我们找出相似数组的数据
int i = 0, j = 0; ArrayList<String> lcsResultList = new ArrayList<>();while (i < text1Length && j < text2Length) {if (text1Words[i].equals(text2Words[j])) {lcsResultList.add(text2Words[j]);i++;j++;} else if (lcsResult[i + 1][j] >= lcsResult[i][j + 1]) {i++;} else {j++;} }
lcsResultList 即是我们最终需要的结果
测试:
String text1 = "zxcvbnmasdfgh"; String text2 = "azsxdcfvgbhnjmklqawsded";
结果:
LCS算法 文本对比的实现相关推荐
- C#,深度好文,精致好码,文本对比(Text Compare)算法与源代码
Vladimir I. Levenshtein 一.文本对比的列文斯坦距离(编辑距离)算法 在日常应用中,文本比较是一个比较常见的问题.文本比较算法也是一个老生常谈的话题. 文本比较的核心就是比较两个 ...
- 文本检测算法性能对比
文本检测算法性能对比 1. 任意四边形文本数据集 1.1 ICDAR15[^1] 2. 曲形文本数据集 2.1 CTW1500[^10] 2.2 Total-Text[^11] 本文会一直更新经典的. ...
- 富文本对比算法的java实现源码,实现类似word修订记录功能
富文本对比算法的java实现 文本比较算法利用了两种比较算法,Needleman/Wunsch算法以及google-diff-match-patch算法,对Needleman/Wunsch进行了些许改 ...
- 文本相似度算法的对比及python实现
文本相似度算法的对比及python实现 前言 通常我们有这样的需求:对两篇文章或者产品内容进行重复率查询. 为了解决类似的问题,罗列了一些常见的相似度算法,用python代码实现. 五种常见的相似度算 ...
- python实现文本相似度算法的对比及
文本相似度算法的对比及python实现 前言 通常我们有这样的需求:对两篇文章或者产品内容进行重复率查询. 为了解决类似的问题,罗列了一些常见的相似度算法,用python代码实现. 五种常见的相似度算 ...
- 文本对比,文本差异并排对比显示实现
目录 前言 方法一:java + html实现 1..准备 2..后端实现 3..测试和效果 方法二:Mergely纯javascript实现 1.Mergely使用示例 2.效果图 3.使用示例中用 ...
- nlp算法文本向量化_NLP中的标记化算法概述
nlp算法文本向量化 This article is an overview of tokenization algorithms, ranging from word level, characte ...
- 高、低成本MEMS惯导系统姿态、位置、速度更新算法的对比
高.低成本MEMS惯导系统姿态.位置.速度更新算法的对比 一.高成本MEMS惯导系统姿态.位置.速度更新算法 1.速度更新 2.位置更新 3.姿态更新 4.程序仿真及实验结果 4.1 主函数 4.2 ...
- Linux 文本对比 diff
一.diff介绍 windows系统下面就有不错的文本对比工具可以使用,例如常用的Beyond Compare,WinMerge都是图形界面的比较工具而且使用非常方便,如果你仅仅是在windows下工 ...
- LCS算法:最长公共子序列
LCS算法:最长公共子序列定义: 一个序列A任意删除若干个字符得到新序列B,则A叫做B的子序列 两个序列X和Y的公共子序列中,长度最长的那个,定义为X和Y的最长公共子序列 例如: X={A,B,C,B ...
最新文章
- 数据结构:二分查找 java
- tomcat项目快速启动设置
- 算法导论之动态规划(最长公共子序列和最优二叉查找树)
- mysql分区失败_MYSQL表分区操作错误1503解决方案
- Yii调用参数配置文件params
- python 文件遍历
- 【Verilog HDL】第三章 reg和net及其一组类型的区别——充分运用实验思维
- laravel 自带的用户登录视图路径_Laravel实现找回密码及密码重置,详细操作
- 寄存器分配图着色_【02】从零开始的卡通渲染-着色篇1
- vscode 注释插件
- 计算机睡眠断网,win7睡眠不断网设置方法汇总
- 02 Toolbar的使用
- android发送短信界面,android调用系统发送短信 和 已发送短信界面
- 如何学习、如何画思维导图
- 仿微信 即时聊天工具 - SignalR (一)
- SOUI使用过程知识点小结1
- 基于SSM框架的个人博客系统项目毕业设计(代码及论文)
- miniGUI源码分析:消息机制
- Gamma.app:由AI驱动,一种呈现想法的新媒介
- android 5.1 flash,Flash Player for Android 4.0 and 5.1 以上版本(提供下載)
热门文章
- 机器学习十大算法实现代码汇总(python)----线性回归、逻辑回归、决策树、支持向量机、朴素贝叶斯、K邻近算法、K-均值算法、随机森林、降低维度算法、梯度增强算法
- python中的对数_python中计算log对数的方法
- PPT的视频由于无编码解码器无法播放问题
- 一句口诀记住 OSI七层协议模型
- Java遍历文件夹及图像缩放批处理
- 上海电力大学本科毕业论文答辩PPT模板
- 陶教授,我记不住定理的证明该怎么办?(我看到陶哲轩在博客上与学生一则有意思的互动,就翻译过来了)...
- Linux I2C 驱动实验
- SQL语句的增删改查(详细)
- Ansys DesignModeler