• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 4. Lines

难度:

任务«平均符号»

💻 Python

想象一下,你是一名语言考古学家,发现了一件带有字符集的古代文物。你推测这很可能是一个字谜——需要重新排列给定单词的字母以得到另一个单词的谜题。为了破解密码,你需要编写一个完整的词典,包含所有可能被加密的字符组合。

你的任务是编写一个程序,接收一个单词(字符集)作为输入,并显示这些字符的所有唯一组合(排列)。为了方便分析与古代文本进行对比,所有生成的组合应按字母顺序排序。

例如,如果文物上刻有单词“cat”,你的程序应生成并显示单词“cat”、“act”、“atc”、“tac”、“tca”、“cta”。

 

输入格式

用于生成排列(字符串)的单词。它可以是一个不含空格、包含字母或数字的单行字符串。

输出格式

输入单词的所有唯一符号重排,按字母顺序排序。每个排列显示在新的一行(字符串)中。

示例

输入

房屋

输出

DMO
房子
MDO
修改
ODM
OMD

提示

There will be no clue here, decide for yourself!

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

🎉 恭喜! 🎉

你出色地完成了任务!这是一个不小的挑战,但你找到了正确答案。你离编程大师又近了一步!继续保持,每一步都让你更强大。

AD

广告

red-snake blue-snake green-snake

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!