2017-09-26 8 views
0

다중 패턴 검색에 Karp-Rabin (해싱 없음)을 사용하는 데 문제가 있습니다. 여기 내 예제 :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

모두의.

추신. 해시가있는 Karp-Rabin 다중 패턴 검색의 파이썬 구현이 있습니까?

답변

0

이 솔루션은 일한 수도 있지만 솔루션

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] 

내 주요 목표는 롤링 해시를 사용하여 여러 패턴 검색을 구현하는 것입니다. 당신의 아이디어는 높이 평가 될 것입니다.