On 8/19/2010 2:41 PM, Thomas Jollans wrote:
On Thursday 19 August 2010, it occurred to Baba to exclaim:

This is not recursive. In fact, it's exactly the same approach as
the first one, plus a bit of an if statement.

   Right.  The original poster seems to be getting their ideas
from

"http://stackoverflow.com/questions/2308696/substring-recursive-algorithm-not-working";

which is a rather confused article, or

http://talkbinary.com/programming/c/c-recursion-palindrome/

which really has a recursive, although inefficient, example.

If you're really interested in this area, read
up on the Boyer-Moore Fast String Search Algorithm, which is
the fast way to do this for long strings.

For Python, a quick solution is

def countSubStringMatch(target, key) :
    esckey = re.sub(r'(\W)',r'\\\1',key) # put \ escapes into key
    cnt = len(re.findall(esckey, target)) # find all key and count
    print('%s is %d times in the target string' %(key,cnt))

>>> countSubStringMatch("atgacatgcacaagtatgcat","ca")
ca is 4 times in the target string

Enjoy.

                                John Nagle
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to