• 1
    Entrada y salida de datos
    • Tareas
  • 2
    Condiciones
    • Tareas
  • 3
    Bucle for
    • Tareas
  • 4
    Cadenas de texto
    • Tareas
  • 5
    Bucle while
    • Tareas
  • 6
    Listas
    • Tareas
  • 7
    Matrices 2D
    • Tareas
  • 8
    Diccionarios
    • Tareas
  • 9
    Conjuntos
    • Tareas
  • 10
    Funciones y recursión
    • Tareas
  • к

Lección 4. Lines

Dificultad:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Tarea«Símbolo promedio»

💻 Python

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 ».

 

Formato de entrada

La palabra para generar permutaciones (cadena). Puede ser una línea sin espacios que contenga letras o números.

Formato de salida

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

Ejemplo

Entrada

Casa

Salida

DMO
Casa
MDO
Mod
ODM
OMD

Pista

There will be no clue here, decide for yourself!

main.py
Prueba 1
Prueba 2
Prueba 3
Prueba 4
Prueba 5
Prueba 6
Prueba 7
Prueba 8
Prueba 9
Prueba 10
Solución del desarrollador
# Для решения этой сложной задачи нам понадобится специальный инструмент
# для создания перестановок. Мы импортируем его из стандартной библиотеки 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

red-snake blue-snake green-snake

Ejecutando tu código...

Asistente de IA

¡Hola! Soy tu asistente de programación. Hazme cualquier pregunta sobre Python — puedo explicarte funciones, métodos y ayudarte con la tarea actual.