У Алисы завтра будет эссе с W-словом (1 ≤ W ≤ 10000), но она слишком занята программированием, чтобы беспокоиться об этом!Тем не менее, Алиса знает, что учительница английского языка в средней школе HS устала от чтения и оценки длинных эссе, поэтому она полагает, что, если она просто представит «разумное» эссе, которое соответствует требованиям, но настолько коротким, насколько это возможно, ей может быть немного жальmarks!
Таким образом, Алиса хочет написать программу для генерации последовательности W слов, которые будут выдаваться за ее эссе, где каждое слово - это любая строка, состоящая из 1 или более строчных букв ("a" .."z") (не обязательно настоящее английское слово).В эссе не будет пунктуации или форматирования, так как те, которые кажутся Алисе ненужными.В попытке замаскировать суть эссе, Алиса будет настаивать на том, что все W слова различны.Наконец, для того, чтобы ее план собрал вместе, она сделает сумму длин слов W как можно меньше.
Помогите Алисе составить любое эссе, отвечающее вышеуказанным требованиям.
На данный момент, я думаю, я идентифицировал фрагмент кода, который вызывает бесконечный цикл.Однако я не могу узнать, как это исправить.Моя теория: первое утверждение if противоречит другим утверждениям if, вызывая бесконечный цикл.Это начинает бесконечный цикл, когда он достигает слов третьего символа.
import string, math
w = int (raw_input(" "))
words = []
paragraph = ""
alphabet = string.ascii_lowercase
first_alpha = -1
second_alpha = 0
third_alpha = 1
switch_to_two_char = False
switch_to_three_char = False
def unique(s):
return len(set(s)) == len(s)
x = 0
while (x != w):
word = ""
if (x != 0):
word = " "
if (first_alpha >= 25):
first_alpha = 0
switch_to_two_char = True
elif (second_alpha >= 25):
second_alpha = 0
first_alpha += 1
elif (second_alpha >= 25 & first_alpha >= 25):
first_alpha = 0
second_alpha = 0
switch_to_three_char = True
elif (third_alpha >= 25):
second_alpha += 1
third_alpha = 0
else:
if (switch_to_two_char and not switch_to_three_char):
second_alpha += 1
if (switch_to_three_char):
third_alpha += 1
else:
first_alpha += 1
if (switch_to_two_char):
word += alphabet[second_alpha]
word += alphabet[first_alpha]
elif (switch_to_three_char):
word += alphabet[third_alpha]
word += alphabet[second_alpha]
word += alphabet[first_alpha]
else:
word += alphabet[first_alpha]
if (unique(word) == 0):
continue
if (word in words):
continue
else:
paragraph += word
words.append (word)
x += 1
print paragraph