Exercise 10.
2 Author: Eugen Sawin <sawine@informatik.uni-freiburg.de>
6 args = parse_arguments()
7 print "next ", next(args.pattern)
9 for x in range(len(args.text)):
11 for p in range(2 - len(str(x))):
15 #print " ".join([str(i) for i in range(len(args.text))])
16 for x in range(len(args.text)):
18 print args.text[x] + pad,
19 #for i in range(len(args.text)):
21 # for x in range(1, len(str(i))):
23 # print args.text[i] + pad,
25 print kmp(args.text, args.pattern)
27 def kmp(text, pattern):
31 for i in range(len(text)):
33 for x in range(1, i-j+1):
35 print pad + " ".join(pattern[:j+1]),
36 while j >= 0 and text[i] != pattern[j]:
41 l.append(i - len(pattern) + 1)
49 for i in range(len(pattern)):
50 while j >= 0 and pattern[i] != pattern[j]:
56 from argparse import ArgumentParser
58 def parse_arguments():
59 parser = ArgumentParser(description="KMP.")
60 parser.add_argument("text", help="the text")
61 parser.add_argument("pattern", help="the pattern")
62 return parser.parse_args()
64 if __name__ == "__main__":