progs/catastrophic/catastrophic2.py
changeset 753 d94fdbef1a4f
parent 742 b5b5583a3a08
equal deleted inserted replaced
752:c0bdd4ad69ca 753:d94fdbef1a4f
     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)