🎉 ¡Felicidades! 🎉
¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.
ProgerLib Python para todos
Imagina que eres un lingüista-arqueólogo y has encontrado un artefacto antiguo con un conjunto de caracteres. Sugieres que esto es un anagrama — Un acertijo en el que necesitas reorganizar las letras de una palabra dada para obtener otra palabra. Para descifrar el código, necesitas compilar un diccionario completo de todas las combinaciones posibles de caracteres que podrían estar encriptados.
Tu tarea — Escribir un programa que reciba una palabra (conjunto de caracteres) como entrada y muestre todas las combinaciones únicas (permutaciones) de estos caracteres. Para facilitar el análisis y la comparación con textos antiguos, todas las combinaciones resultantes deben estar ordenadas alfabéticamente.
Por ejemplo, si en el artefacto aparece la palabra « cat », tu programa debe generar y mostrar las palabras « cat », « act », « atc », « tca », « tac ».
La palabra para generar permutaciones (cadena). Puede ser una línea sin espacios que contenga letras o números.
Todas las reordenaciones únicas de los símbolos de la palabra de entrada ordenadas en orden alfabético. Cada permutación se muestra en una nueva línea (cadena).
Casa
DMO
Casa
MDO
Mod
ODM
OMD
# Для решения этой сложной задачи нам понадобится специальный инструмент
# для создания перестановок. Мы импортируем его из стандартной библиотеки itertools.
from itertools import permutations
# Считываем слово, которое ввел пользователь
word = input()
# Генерируем все возможные перестановки символов в слове.
# Функция permutations возвращает объекты-кортежи, например, для слова "ab" это будут ('a', 'b') и ('b', 'a').
all_perms_tuples = permutations(word)
# Чтобы избавиться от дубликатов (например, для слова "aab"), мы используем множество (set).
# В цикле мы преобразуем каждый кортеж обратно в строку и добавляем в множество.
# Множество автоматически сохранит только уникальные строки.
unique_perms_set = set()
for p in all_perms_tuples:
# Метод .join() склеивает символы из кортежа в одну строку.
# Например, ('д', 'о', 'м') превращается в "дом".
unique_perms_set.add("".join(p))
# Для сортировки нам нужен список, поэтому преобразуем множество в список.
sorted_perms = sorted(list(unique_perms_set))
# Теперь, когда у нас есть отсортированный список уникальных перестановок,
# мы выводим каждый элемент этого списка на новой строке.
for perm in sorted_perms:
print(perm)
🎉 ¡Felicidades! 🎉
¡Has resuelto la tarea brillantemente! Era un reto difícil, pero encontraste la solución correcta. ¡Estás un paso más cerca de dominar la programación! Sigue así, cada etapa superada te hace más fuerte.
AD
Publicidad
Ejecutando tu código...