和版本页上SO一样,区分两个字符串的算法是什么?我试图一一区分这两个字符串,类似于StackOverflow在版本编辑页面上的做法。这样做的算法是什么?是否有可以实现此目的的gem或其他标准库?编辑:我见过其他差异算法(与Ruby不同),它们似乎会产生以下结果:>>o='nowisthetimewhenallgoodmen.'>>p='nowsometimethementimewhenallgoodmen.'>>Differ.diff_by_word(o,p).format_as(:html)=>“现在有些人是好人的时候了。”注意到每个单词的单词差异了吗?我想通过短语进行更多区分,所以上面的代码输出:=>“现在是所有好男人的时候了。”我希望得到太多吗?您正在寻找的算法是最长的公共子序列,它可以为您完成大部分工作。大纲就是这些方面的东西。按字拆分(输入、输出)计算输入/输出数组的LCS。遍历数组并智能地连接区域。例如,你说你有:“helloworldthisisatest”对比:“sirhelloworld”LCS的结果现在是你在构建上撒上特殊的酱汁。您正在将字符串连接在一起,注意前面的操作。朴素的算法只是连接同一动作的各个部分。最后你把它转换成html:misterhelloworld这是一个测试当然细节决定成败:以上是C#学习教程:What'sthealgorithmtodifferentiatetwostringsinthesamewayasontheSOontheversionpage?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
