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