• 1
    Eingabe und Ausgabe
    • Aufgaben
  • 2
    Bedingungen
    • Aufgaben
  • 3
    For-Schleife
    • Aufgaben
  • 4
    Zeichenketten
    • Aufgaben
  • 5
    While-Schleife
    • Aufgaben
  • 6
    Listen
    • Aufgaben
  • 7
    2D-Arrays
    • Aufgaben
  • 8
    Wörterbücher
    • Aufgaben
  • 9
    Mengen
    • Aufgaben
  • 10
    Funktionen und Rekursion
    • Aufgaben
  • к

Lektion 4. Lines

Schwierigkeit:

Aufgabe«Durchschnittssymbol»

💻 Python

Stellen Sie sich vor, Sie sind & mdash; Linguist-Archäologe, und Sie haben ein antikes Artefakt mit einer Zeichenfolge gefunden. Sie vermuten, dass es sich um ein Anagramm handelt & mdash; Ein Rätsel, bei dem die Buchstaben eines gegebenen Wortes so umgestellt werden müssen, dass ein anderes Wort entsteht. Um die Chiffre zu knacken, müssen Sie ein vollständiges Wörterbuch aller möglichen Zeichenkombinationen erstellen, die verschlüsselt sein könnten.

Ihre Aufgabe & mdash; Schreiben Sie ein Programm, das ein Wort (eine Zeichenfolge) als Eingabe akzeptiert und alle eindeutigen Kombinationen (Permutationen) dieser Zeichen ausgibt. Zur Vereinfachung der Analyse und des Vergleichs mit antiken Texten sollten alle resultierenden Kombinationen in alphabetischer Reihenfolge sortiert werden.

Wenn zum Beispiel auf einem Artefakt das Wort & laquo; cat & raquo; gefunden wird, sollte Ihr Programm die Wörter & laquo; cat & raquo;, & laquo; act & raquo;, & laquo; atc & raquo;, & laquo; tca & raquo;, & laquo; tac & raquo; generieren und anzeigen.

& nbsp;

Eingabeformat

Das Wort zum Generieren von Permutationen (Zeichenkette). Es kann eine einzelne Zeile ohne Leerzeichen sein, die Buchstaben oder Zahlen enthält.

Ausgabeformat

Alle eindeutigen Umstellungen der Symbole des Eingabeworts, sortiert in alphabetischer Reihenfolge. Jede Permutation wird in einer neuen Zeile (Zeichenkette) angezeigt.

Beispiel

Eingabe

Haus

Ausgabe

DMO
Haus
MDO
Mod
ODM
OMD

Hinweis

There will be no clue here, decide for yourself!

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

🎉 Glückwunsch! 🎉

Du hast die Aufgabe hervorragend gelöst! Es war schwierig, aber du hast die Lösung gefunden. Du bist dem Meister einen Schritt näher! Mach weiter so.

AD

Werbung

red-snake blue-snake green-snake

Führe deinen Code aus...

KI-Assistent

Hallo! Ich bin dein Programmier-Assistent. Stelle mir beliebige Fragen zu Python — ich erkläre Funktionen, Methoden und helfe dir bei der aktuellen Aufgabe!