• 1
    Entrada e saída
    • Tarefas
  • 2
    Condições
    • Tarefas
  • 3
    Loop for
    • Tarefas
  • 4
    Strings
    • Tarefas
  • 5
    Loop while
    • Tarefas
  • 6
    Listas
    • Tarefas
  • 7
    Matrizes 2D
    • Tarefas
  • 8
    Dicionários
    • Tarefas
  • 9
    Conjuntos
    • Tarefas
  • 10
    Funções e recursão
    • Tarefas
  • к

Lição 4. Lines

Dificuldade:

Tarefa«Símbolo médio»

💻 Python

Imagine que você é um linguista-arqueólogo e encontrou um artefato antigo com um conjunto de caracteres. Você sugere que isso é um anagrama — Um quebra-cabeça no qual você precisa reorganizar as letras de uma palavra dada para obter outra palavra. Para decifrar a cifra, você precisa compilar um dicionário completo de todas as combinações possíveis de caracteres que poderiam estar criptografados.

Sua tarefa — Escreva um programa que aceita uma palavra (conjunto de caracteres) como entrada e exibe todas as combinações únicas (permutações) desses caracteres. Para facilitar a análise e comparação com textos antigos, todas as combinações resultantes devem ser ordenadas em ordem alfabética.

Por exemplo, se uma palavra no artefato for « cat », seu programa deve gerar e exibir as palavras « cat », « act », « atc », « tca », « tac ».

 

Formato de entrada

A palavra para gerar permutações (string). Pode ser uma linha sem espaços contendo letras ou números.

Formato de saída

Todos os rearranjos únicos dos símbolos da palavra de entrada ordenados em ordem alfabética. Cada permutação é exibida em uma nova linha (string).

Exemplo

Entrada

Casa

Saída

DMO
Casa
MDO
Mod
ODM
OMD

Dica

There will be no clue here, decide for yourself!

main.py
Teste 1
Teste 2
Teste 3
Teste 4
Teste 5
Teste 6
Teste 7
Teste 8
Teste 9
Teste 10
Solução do desenvolvedor
# Для решения этой сложной задачи нам понадобится специальный инструмент
# для создания перестановок. Мы импортируем его из стандартной библиотеки 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)

🎉 Parabéns! 🎉

Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.

AD

Publicidade

red-snake blue-snake green-snake

Executando seu código...

Assistente de IA

Olá! Sou seu assistente de programação. Faça qualquer pergunta sobre Python — posso explicar funções, métodos e ajudá-lo com a tarefa atual!