Conditions | 4 |
Total Lines | 10 |
Lines | 0 |
Ratio | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | from abc import ABCMeta, abstractmethod |
||
59 | def search_in(self, text): |
||
60 | text_hash = self.hash(text, self.M) |
||
61 | if text_hash == self.patHash: |
||
62 | return 0 |
||
63 | for i in range(self.M, len(text)): |
||
64 | text_hash = (text_hash + RabinKarp.Q - self.RM * char_at(text, i - self.M) % RabinKarp.Q) % RabinKarp.Q |
||
65 | text_hash = (text_hash * RabinKarp.R + char_at(text, i)) % RabinKarp.Q |
||
66 | if text_hash == self.patHash: |
||
67 | return i - self.M + 1 |
||
68 | return -1 |
||
69 |