【问题标题】:Generating a string hash to compare two substrings生成字符串哈希以比较两个子字符串
【发布时间】:2017-06-04 15:46:41
【问题描述】:

我有一个字符串“abcdbca”,我被指示分割两个子数组,比如 [0:3] 和 [4:7],我得到字符串“abc”和“bca”。我必须找出两个子字符串是否相似(相同的元素,max_allowed_mismatch_error = 1)。

我尝试了计数排序,但优化并不多。所以,我认为下一个更优化的方法可能是散列。但我无法弄清楚哈希函数来准确解决问题。我需要多次执行该操作。

【问题讨论】:

  • 这里没有问题。
  • 对不起,我没听懂?

标签: arrays string hash set string-hashing


【解决方案1】:

散列不好。

有两种解决方案,一种是简单的,一种是坚持子字符串的长度相等且字符数相等,另一种是复杂的一种,即使用像 Needleman-Wunch 这样的对齐算法。这将给出一个更可靠的字符串相似性概念。

【讨论】:

  • 谢谢。我读过它,但无法正确理解。你能帮忙解释一下我上面提到的例子吗?为什么你认为散列不好?
  • 散列不好,因为两个相似的字符串没有相似的散列。对齐算法会将字符串的相似部分放在一起,并在必要时添加间隙。所以 AAB 和 CAA 与 AA 对齐。然后,您计算与使用 naive 方法相同的字符,
  • 但这并不能正确回答问题。假设我有 AAB 和 ACA,那么它们将如何对齐?
  • 取决于您的设置,但 A-AB ACA- 将是合理的。连字符表示间隔。
  • 我认为它不会解决我的问题。但我会试试的。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2011-03-27
  • 2015-03-07
  • 2021-03-26
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多