Python. Решение задач используя метод строк
Алфавит языка некоторого племени содержит всего несколько букв. Найдите все слова длины K, которые можно построить с помощью этого алфавита и в которых вторая буква – это первая буква алфавита.
Входные данные
Первая входная строка содержит алфавит языка. Во второй строке записывается число K (K ≥ 2).
Выходные данные
Программа должна вывести все допустимые слова, которые можно составить с помощью заданного алфавита. Слова должны быть выведены по одному в строчке в алфавитном порядке. После всех слов в отдельной строке выводится их количество.
По дате
По Рейтингу
Такие задачи удобно решать через рекурсию.
12345678910111213141516171819202122232425262728293031323334
def generate_words(alphabet: str, k: int) -> list:
"""
Generate all possible words of length `k` from the `alphabet`.
"""
if k == 1:
return [char for char in alphabet]
word_list = []
prefix_list = generate_words(alphabet, k - 1)
for prefix in prefix_list:
word_list += [prefix + letter for letter in alphabet]
return word_list
def claen(word_list: list, alphabet: str) -> None:
"""
Drop words in which the second letter is not equal to the first
letter of the alphabet.
"""
i = 0
while i < len(word_list):
if word_list[i][1] != alphabet[0]:
word_list.pop(i)
else:
i += 1
alphabet = input("Alphabet: ")
k = int(input("k: "))
word_list = generate_words(alphabet, k)
claen(word_list, alphabet[0])
print(*word_list, len(word_list), sep="\n")
есть примеры на которых проверять программу?
Больше по теме