【问题标题】:Karp-Rabin multiple pattern search without hashing没有散​​列的 Karp-Rabin 多模式搜索
【发布时间】:2018-03-08 00:47:36
【问题描述】:

我在使用 Karp-Rabin(没有散列)进行多模式搜索时遇到问题。这是我的例子:

_string="today is a good day"

_patterns=['good', 'day']

def multiple_pattern_search(string,substrings,size):
    stringsize=string[:size]
    for i in range(len(stringsize)-size+1):
        if stringsize in substrings and string[:i+size-1] in substrings:
            return i
        stringsize=string[1:size+1]
    return 

print(multiple_pattern_search(_string,_sublist,3))

输出:None

预期输出:2,16

两者都对应于'day'的偏移量

提前感谢您的帮助。

PS。是否有任何带有哈希的 Karp-Rabin 多模式搜索的 python 实现?

【问题讨论】:

    标签: python hash rabin-karp


    【解决方案1】:

    解决方案

    def multiple_pattern_search(string,substrings,size):
            matched=[]
            #stringsize=string[:size]
            for i in range(len(string)-size+1):
                stringsize=string[i:size+i]
                if stringsize not in substrings:
                    substring=string[i:size+i]
                if stringsize in substrings:
                    if string[i:size+i] in substrings:
                        matched.append(i)
            return matched
    
        print(multiple_pattern_search(_string,_patterns,3))
    
        Output: [2, 16]
    

    虽然此解决方案可能有效,但我的主要目标是使用滚动哈希实现多模式搜索。我们将不胜感激您的想法。

    【讨论】:

      猜你喜欢
      • 2018-11-18
      • 2022-01-18
      • 2010-11-22
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2018-04-09
      • 2018-03-07
      • 2012-04-02
      相关资源
      最近更新 更多