【问题标题】:Difference string matching差异字符串匹配
【发布时间】:2020-07-27 20:11:32
【问题描述】:

通过字符串匹配,您可以寻找完全匹配。

O(n) 时间复杂度中,有一些算法可以解释多达k 的二进制差异,包括字符的省略、字符的添加或字符的替换(忘记了算法名称)。

是否有一种算法可以改为返回字符串之间的总差 - 而不是差数

实际上,此算法是其他算法的更通用版本,其中其他算法为每个差异 (a != d) 注册值 1,而不是它们的差异量,即 3 d - a.

在原始算法中,如果字符串的不匹配总数小于k,则字符串匹配,在我正在寻找的算法中,我想要条件是字符串的总差小于值e

【问题讨论】:

  • memcmp怎么样
  • @super 这是两个字符串的单一比较。我正在寻找匹配其中的字符串。即str1.contains(str2) - 理想情况下在O(n+m) 时间
  • 听起来您可能正在寻找edit distanceLevenshtein distance
  • @500-InternalServerError 是相同的算法吗?我相信这就是我所说的算法,我说我忘记了它的名字
  • @500-InternalServerError 那些不考虑不匹配的金额,只有发生不匹配的事实

标签: algorithm string-matching


【解决方案1】:

•使用 Google 搜索网络 •“高效的字符串匹配算法” • 17,100,000 个结果在 0.53 秒内 •锻炼谷歌如何管理这个?与许多文档匹配的字符串结果如此之多。 • 假设一份文档的大小为 100 个字符,字符串大小为 35 个字符 •17,100,000 * 100 * 35 次比较 •59,850,000,000 •1 纳秒、59 秒内的一次比较

【讨论】:

    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多