|
__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))
|