Информатика, вопрос задал vladaposlavskaa10086 , 2 года назад

При регистрации нового пользователя генерируется строка S, состоящая из маленьких букв латинского алфавита. Пользователь может убирать символы с начала и с конца строки, тем самым генерируя себе ник. Например, из строки "aaaa" пользователь может получить ники "a", "aa", "aaa" и "aaaa". С другой стороны, из строки "abcd" можно получить никнеймы "a", "ab", "abc", "abcd", "b", "bc", "bcd", "c", "cd" и "d". Согласен, имена получаются довольно прозаичными, но зато извечная геймерская проблема решена!
Помогите определить, какое максимальное количество различных ников можно получить из строки S описанным выше способом.
Входные данные

INPUT.TXT
OUTPUT.TXT

1
aaaa
4

2
abcd
10

Дана строка S, состоящая из строчных латинских букв. Длина строки не менее 1 и не более 50 символов.
Выходные данные
Выведите единственное число — максимальное количество ников.

Приложения:

Ответы на вопрос

Ответил Аноним
1

s = input()

variants = []

for i in range(len(s)):

  variants.append(s[i:])

  for j in range(1, len(s) - i):

      variants.append(s[i:-j])

unique_variants = []

for variant in variants:

  if variant not in unique_variants:

      unique_variants.append(variant)

print(len(unique_variants))


vladaposlavskaa10086: спасибо! гигантское спасибо!
Новые вопросы