使用 Z 算法在文本中查找模式的匹配项,包括与一对字母反转的匹配项?

问题描述 投票:0回答:0

所以我目前正在学习Z-algorithm并且遇到了一个困扰我一段时间的问题。

问题:

使用 Z 算法,返回文本中模式的所有匹配项。然而,除了包含原始模式之外,匹配项还必须包含只有一对字母反转的模式(我们称之为反转)。示例:如果我们有原始模式“hihi”,该模式的反转将是“ihhi”、“hhii”或“hiih”,因此我们必须在文本中找到这些模式的所有匹配项。只有反转或匹配原始模式的匹配才是匹配。

现在,我的解决方案是生成最多有一个反转的所有可能模式,然后对这些模式运行 Z 算法以找到它们的精确匹配。然而,我意识到这个解决方案虽然可行,但效率极低,因为在最坏的情况下,它可能涉及多次运行 Z 算法。什么是更有效的解决方案?

python algorithm pattern-matching string-matching
© www.soinside.com 2019 - 2024. All rights reserved.