String 如何标记两个字符串之间的差异
我想要一个可以直观地标记两个字符串之间差异的函数 例1: 输入:String 如何标记两个字符串之间的差异,string,algorithm,String,Algorithm,我想要一个可以直观地标记两个字符串之间差异的函数 例1: 输入: 堆栈溢出 堆栈溢出 输出: 堆栈[O]verflow 堆栈[o]溢出[ing] 例2: 输入: 重新打包溢出 堆栈溢出 输出: [Res]tack[]溢出 [S]tack[-]O[ooo]verflow 我已经搜索了很多次了,但是我总是使用文件比较函数。我想想象一下字符串之间的区别。我发现的一个例子是(这正是我需要的),但它似乎使用了服务器端代码 语言并不重要,JavaScript、Python,但是任何关于如何解
- 堆栈溢出
- 堆栈溢出
- 堆栈[O]verflow
- 堆栈[o]溢出[ing]
- 重新打包溢出
- 堆栈溢出
- [Res]tack[]溢出
- [S]tack[-]O[ooo]verflow
我不一定要寻找一个实现;我宁愿有一些网站的链接,因为这不是一个基本的问题。这也不太难,但你想把它弄对。这个问题可以通过找到两个字符串的(LCS)来解决,然后将方括号放在不属于LCS的部分周围 例如,
堆栈溢出
和堆栈溢出
的LCS是堆栈溢出
,因此第一个字符串将呈现为堆栈[O]溢出
,第二个字符串呈现为堆栈[O]溢出
,因为这些是LCS中不存在的部分
Wikipedia上描述了计算LCS的一种方法,并且在实际情况下,各种算法都加快了计算速度。每个字符串中不在LCS中的部分可以通过一个简单的循环找到,该循环维护字符串中的当前索引和LCS中当前位置的另一个索引。这个问题可以通过找到两个字符串的(LCS)来解决,然后,仅将不属于LCS的部分放在方括号内 例如,
堆栈溢出
和堆栈溢出
的LCS是堆栈溢出
,因此第一个字符串将呈现为堆栈[O]溢出
,第二个字符串呈现为堆栈[O]溢出
,因为这些是LCS中不存在的部分
Wikipedia上描述了计算LCS的一种方法,并且在实际情况下,各种算法都加快了计算速度。每个字符串中不在LCS中的部分可以通过一个简单的循环找到,该循环维护字符串中的当前索引和LCS中当前位置的另一个索引。?编辑顺序?嗯,编辑距离和顺序很有趣,但我不确定如何使用它们来解决这个问题。解决方案需要走多远?如果将堆栈溢出与堆栈溢出进行比较,会发生什么情况?哪些位会突出显示?我想你会想要
[堆栈]溢出]
,但与流堆栈溢出时相比,这会变得非常复杂-单词flow在那里有两次(一次是差异,一次是相等),但两者都会突出显示?编辑序列?嗯,编辑距离和顺序很有趣,但我不确定如何使用它们来解决这个问题。解决方案需要走多远?如果将堆栈溢出与堆栈溢出进行比较,会发生什么情况?哪些位会突出显示?我想你会想要[堆栈]溢出]
,但与流堆栈溢出相比,这会变得非常复杂-单词flow在那里有两次(一次是差异,一次是相等),但两者都会突出显示。