| changeset 1027 | dadb5a94728d |
| parent 984 | be2d568644f6 |
| 1026:ee39fd6df150 | 1027:dadb5a94728d |
|---|---|
1 #!/usr/bin/env python3 |
|
2 import re |
|
3 import sys |
|
4 |
|
5 # case of catastrophic backtracking in Python |
|
6 # |
|
7 # regex: (a*)*b |
|
8 # strings: aa...a |
|
9 # |
|
10 # call with timing as: |
|
11 # |
|
12 # time ./catastrophic2.py 20 |
|
13 |
|
14 # counter n given on the command line |
|
15 cn = sys.argv[1] |
|
16 |
|
17 # calling the matching function |
|
18 s = ("a" * int(cn)) |
|
19 m = re.fullmatch('(a*)*b' , s) |
|
20 |
|
21 print(s) |
|
22 print(bool(m)) |