【问题标题】:Library for optimizing strings ( Boyer-Moore Algorithm )优化字符串的库(Boyer-Moore 算法)
【发布时间】:2012-03-13 09:57:20
【问题描述】:

我在一个项目中大量使用字符串,所以我正在寻找一个用于处理它们的快速库。我认为 Boyer-Moore 算法是最好的。

有没有免费的解决方案?

【问题讨论】:

  • 几年前我看到了一些在 asm 中使用 Boyer More 算法的快速字符串例程,我认为它们比实际包含的更好。我错了吗?
  • @user1259295,请将该澄清评论移至问题正文(或标题)
  • 这个话题之前似乎已经讨论过:stackoverflow.com/questions/3310865/…
  • @user1259295,Boyer-Moore 算法是一个非常具体的算法,它解决了一个非常具体的问题(搜索子字符串)。它本身不是“库”,也不能解决“项目大量使用字符串”的问题。这个问题仍然含糊不清,需要编辑或改写!您需要告诉我们您需要解决的具体问题。一收到建议,您就跳上了 Boyer-Moore 马车,但是您需要的吗?或者你只是过早地优化,因为你还没有问题......
  • @user539484,我不认为我在扭曲任何东西。查看编辑年表,Boyer-Moore 的想法不在问题的第一个版本中。即便如此,我看不出如何将快速搜索算法称为“优化字符串”(来自标题!)。我也不明白如何将搜索视为处理(如在标题正文中)。这个想法是 Delphi 的字符串处理确实非常有效,像这样的问题,没有 实际 陈述的问题,只是给每个人争论的主题。没有明确的问题 = 没有可能的答案。

标签: delphi delphi-xe2


【解决方案1】:

您可以考虑以下资源来实现 Boyer–Moore 算法:

上次编辑:

theunknownones 项目的 StringSimilarity 包是模糊和语音字符串比较算法的良好来源:

  • DamerauLevenshtein
  • Koelner Phonetik
  • SoundEx
  • 变音器
  • 双元音位
  • Ngram
  • 骰子
  • JaroWinkler
  • NeedlemanWunch
  • SmithWatermanGotoh
  • MongeElkan

【讨论】:

    【解决方案2】:

    注意:回答comment 而不是问题本身

    有(或者更确切地说,曾经,因为它目前已被废弃)一个 Delphi 单元(即!)FastStrings,它通过大量使用内联汇编器来实现 Boyer–Moore 字符串搜索算法.是你要找的吗?

    作为旁注:项目主页现在与作者的电子邮件一样已失效,因此鉴于许可的限制性,我发现此代码的重用(和修改以及任何进一步的开发)相当成问题条款。

    【讨论】:

    • @kobik,忽略这一点,它是我的一个真正的朋友,正走在致命的复仇之路上 :-) 就我个人而言,我记得它的开发时间(主要是在 IRC 频道上)
    • @TLama,是的,最近几天你一直非常坚持这个拖钓问题。同时,你有什么 sockpuppets 来完成这项肮脏的工作吗?
    • @kobik 也许更好的问题是为什么要支持“我们曾经使用 FastStrings,但它不适用于您使用的编译器 XE2”的答案。支持糟糕的答案并没有真正的帮助。它只是鼓励人们写出糟糕的答案。
    • @DavidHeffernan,你说得很好。当我评论时,我什至没有看到 XE2 标签(因为没有这样的标签?)。投反对票的人应该说“它不适用于 XE2,你使用的编译器......”值得投反对票的是制作大沙拉的 OP(参见 Cosmin Prund 的评论)。无论如何,这个答案可以为那些没有 XE2 的人服务。
    • 我写了 FastStrings :)
    猜你喜欢
    • 1970-01-01
    • 2012-07-12
    • 2018-11-29
    • 2020-07-31
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多