【问题标题】:Is it always true that the edit distance of two strings is equal to the edit distance of their substrings?两个字符串的编辑距离是否总是等于它们子字符串的编辑距离?
【发布时间】:2021-07-15 21:35:03
【问题描述】:

假设我们有两个字符串:

  1. ccttgg
  2. gacgct

这两个字符串的编辑距离是6。

可能的子串是:

  1. cctt--
  2. gacg--

他们的编辑距离是 4。

与原来的两个字符串相等的其余部分是:

  1. ----gg
  2. ----ct

他们的编辑距离是2。

所以4+2=6,就是原来的编辑距离。

这种假设总是正确的吗?

如果不是,有没有办法使用两个字符串的子字符串的编辑距离来计算两个字符串之间的编辑距离?


编辑:为了更清楚,我对编辑距离的定义是 Levenshtein 距离,如果字符不相同,则插入、删除和替换的成本为 1,如果字符相等,则为 0。 我考虑使用换位的 Damerau 距离。

【问题讨论】:

    标签: levenshtein-distance edit-distance


    【解决方案1】:

    没有

    反例

    考虑字符串:

    1. aba
    2. bab

    通过从前面删除“a”并在末尾添加“b”,它们的编辑距离为 2。

    如果这些被分解成子字符串,例如

    1. ab, 一个
    2. ba, b

    那么第一个子字符串的编辑距离为 2,第二个子字符串的编辑距离为 1,总共为 3。

    【讨论】:

    • 我不考虑像 Damerau 距离那样的交换/换位
    • 更新以提供 Levenshtein 距离的反例。
    • 谢谢,我已经有一些严重的疑问了。您知道通过将两个初始字符串拆分为子字符串来计算编辑距离的方法吗?
    • 如果您不允许只替换,那么该属性将成立。否则,我认为您不能拆分子字符串并认为它们是独立的。 algorithm 确实涉及查找字符串前缀之间的距离,因此这可能是相关的。
    猜你喜欢
    • 2021-08-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 2018-09-21
    • 2012-05-18
    • 1970-01-01
    • 2015-03-01
    相关资源
    最近更新 更多