|
__author__ = 'skumaran'
comma_free_words = []
def check_periodic(input_string):
head = input_string[:len(input_string) / 2]
tail = input_string[len(head):]
return head == tail
def get_parts(input_string):
parts = []
for idx in range(len(input_string)):
parts.append((input_string[:idx], input_string[idx:]))
return parts
def any_starts_with(head):
for word in comma_free_words:
if word.startswith(head):
return True
return False
def any_ends_with(tail):
for word in comma_free_words:
if word.endswith(tail):
return True
return False
def check_comma_free(input_string):
if check_periodic(input_string):
print("input string is periodic, it cannot be commafree.")
return
if len(comma_free_words) == 0:
comma_free_words.append(input_string)
else:
parts = get_parts(input_string)
for head, tail in parts:
if (any_starts_with(head) and any_ends_with(tail)) or (any_starts_with(tail) and any_ends_with(head)):
print("%s|%s are part of the previous words." % (head, tail))
return
comma_free_words.append(input_string)
if __name__ == '__main__':
while True:
input_string = raw_input()
if input_string == '':
break
if len(input_string) != 4:
print("Please give a string of length 4.")
else:
check_comma_free(input_string)
print("The total number of comma free words was %d " % len(comma_free_words))
|