【问题标题】:Set of characters in same order in 2 strings2个字符串中相同顺序的字符集
【发布时间】:2017-02-23 08:10:02
【问题描述】:

我有 2 个字符串,我们将第一个称为基本字符串,将另一个作为输入字符串。 我正在设计一种算法来找出基本字符串中有多少字符在输入字符串中按顺序排列。这意味着并非基本字符串中的所有字符都可能出现在输入字符串中,但无论有多少字符,都应该按顺序排列(因为它们存在于基本字符串中) 我们需要找出输入字符串中基本字符串的匹配百分比

例子:

base string: abcd
input string: *a*b*c*d*
output: 100%

base string: abcd
input string: *b*c*d*
output: 75%

base string: abcd
input string: *a*c*d*
output: 75%

base string: abcd
input string: *a*c*b*c*d*
output: 75% (*a*c*d* or *b*c*d*)

base string: abcd
input string: *b*a*d*b*c*d*
output: 100% (*a*b*c*d* is found)

【问题讨论】:

  • 在第四个样本 (*a*c*b*c*d*) 中没有 abcd 存在,因此您有 100% 匹配?另外,到目前为止,您尝试过什么?
  • @SelçukCihan abcd 如果您忽略 a 和 b 中间的 c,则存在。可以视为(*a*b*c*d*)
  • 基本字符串的最大长度是多少?
  • @fjardon 未修复

标签: string algorithm substring matching


【解决方案1】:

再想一想,这是一个典型的LCS问题。百分比可以通过 LCS 和 Input String/Base String 的长度之比得出。

至于实现,我会使用 Hirschberg 算法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2015-09-06
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多