This is the following Python code that I have coded for an algorithmic problem online. For each line of input, the goal is to find the greatest number of repeating blocks into which the string can be split. For example, if the input is abcabcabcabc, then the output should be 4, because the string is equal to 4 repetitions of abc.
The online compiler says "Time Limit Exceeded". Where in the following code can I optimize to make it much more efficient in terms of time?
inputString = raw_input()
while (inputString !='*'):
scanned_string = ""
matched_characters = ""
frequency = 0
if (len(inputString) == 1):
print frequency
for current_symbol in inputString:
if not scanned_string:
scanned_string = scanned_string + current_symbol
if scanned_string:
matched_characters = matched_characters + current_symbol
if (scanned_string.startswith(matched_characters)):
if (len(scanned_string) == len(matched_characters)):
frequency = frequency + 1
matched_characters = ""
else:
scanned_string = scanned_string+matched_characters
matched_characters = ""
frequency = 1
print frequency
inputString = raw_input()