KMP.
2 Author: Eugen Sawin <sawine@informatik.uni-freiburg.de>
6 args = parse_arguments()
7 print "next ", next(args.pattern)
8 print kmp(args.text, args.pattern)
10 def kmp(text, pattern):
14 for i in range(len(text)):
15 while j >= 0 and text[i] != pattern[j]:
16 #print "mismatch at text %i and pattern %i" % (i, j)
17 #print "new pattern %i" % (n[j],)
21 l.append(i - len(pattern) + 1)
28 for i in range(len(pattern)):
29 while j >= 0 and pattern[i] != pattern[j]:
35 from argparse import ArgumentParser
37 def parse_arguments():
38 parser = ArgumentParser(description="KMP.")
39 parser.add_argument("text", help="the text")
40 parser.add_argument("pattern", help="the pattern")
41 return parser.parse_args()
43 if __name__ == "__main__":