• 1
    إدخال وإخراج البيانات
    • المهام
  • 2
    الشروط
    • المهام
  • 3
    حلقة for
    • المهام
  • 4
    السلاسل النصية
    • المهام
  • 5
    حلقة while
    • المهام
  • 6
    القوائم
    • المهام
  • 7
    مصفوفات ثنائية الأبعاد
    • المهام
  • 8
    القواميس
    • المهام
  • 9
    المجموعات
    • المهام
  • 10
    الدوال والتكرار
    • المهام
  • к

درس 4. Lines

الصعوبة:

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

مسألة«رمز المتوسط»

💻 Python

تخيل أنك عالم لغوي-آثاري، وقد عثرت على قطعة أثرية قديمة تحتوي على مجموعة من الرموز. تقترح أن هذا هو أنام — لغز تحتاج فيه إلى إعادة ترتيب حروف كلمة معينة للحصول على كلمة أخرى. لفك التشفير، تحتاج إلى تجميع قاموس كامل لجميع التركيبات الممكنة من الرموز التي قد تكون مشفرة.

rn

مهمتك — كتابة برنامج يقبل كلمة واحدة (مجموعة من الرموز) كمدخل ويعرض جميع التركيبات الفريدة (التباديل) لهذه الرموز. لتسهيل التحليل والمقارنة مع النصوص القديمة، يجب ترتيب جميع التركيبات الناتجة حسب الترتيب الأبجدي.

rn

على سبيل المثال، إذا كانت الكلمة الموجودة على القطعة الأثرية هي «cat»، يجب أن يولد برنامجك ويعرض الكلمات «cat»، «act»، «tac»، «tca»، «atc»، «cta».

rn

& nbsp;

تنسيق الإدخال

الكلمة المستخدمة لتوليد التباديل (سلسلة نصية). يمكن أن تكون سطرًا واحدًا بدون مسافات يحتوي على حروف أو أرقام.

تنسيق الإخراج

جميع التباديل الفريدة لرموز الكلمة المدخلة مرتبة ترتيبًا أبجديًا. يتم عرض كل تبديل في سطر جديد (نص).

مثال

إدخال

منزل

إخراج

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

جارٍ تشغيل الكود...

مساعد الذكاء الاصطناعي

مرحباً! أنا مساعدك في البرمجة. اسألني أي شيء عن Python — يمكنني شرح الدوال والطرق ومساعدتك في المهمة الحالية!