我有一个与剧集挖掘相关的问题,我需要在给定事件序列中出现的情况下找到剧集的最大效用。但是我以不同的形式提出了这个问题,以便更容易解释。
有一个长字符串S,其中每个字符都有一些正分数。给定另一个字符串T,找到与S匹配的包含T的所有字符序列的匹配项,使得:-
- 事件不重叠。
- S中的字符序列必须与T中的字符序列相同,但可以是不连续的。
- 每个事件都应位于给定的窗口中。
可以通过简单地将每次出现的字符的分数相加来找到匹配的总分。问题是找到所有可能匹配的最大分数的匹配。
示例- 字符串S - a(2) b(3) e(1) d(10) d(7) c(1) a(5) d(8) b(5) d(6)
字符串T - abd
窗口大小 - 5
字符串T的两个匹配项是:-
- [1,2,4],[7,9,10]。得分 - [2+3+10] + [5+5+6]= 31
- [1,2,5],[7,9,10]。得分 - [2+3+7] + [5+5+6]= 28。并且在比赛 1 中得分最高,因此它是必填答案。
我们没有考虑出现 [1,2,8] 或 [1,2,10],因为它们不在给定的窗口中,因为 (8-1) > 5。
所以,我想知道是否有一些解决方案可以找到有效地给出最高分数的出现或匹配集。