def search(text,pattern): """Given two strings, a "text" and a "pattern", return a boolean indicating whether or not the pattern matches exactly against part of the text.""" for i in range(len(text)-len(pattern)+1): if compareAtPositionI(text,pattern,i): return True return False def compareAtPositionI(text,pattern,i): """Compare pattern against text starting at position i and return a boolean indicating whether or not there was a match.""" #if len(text)-i < len(pattern): # return False for j in range(len(pattern)): if pattern[j] != text[i+j]: return False return True # A shorter version using slicing. def compareAtPositionI2(text,pattern,i): """Compare pattern against text starting at position i and return a boolean indicating whether or not there was a match.""" return pattern == text[i:i+len(pattern)]