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

درس 1. Entering and output of data

الصعوبة:

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

مسألة«توازن المعركة»

💻 Python

اكتب برنامجًا يتحقق مما إذا كانت جميع أنواع الأقواس متوازنة في السطر.

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

سطر واحد يمكن أن يحتوي على أي أحرف، بما في ذلك ثلاثة أنواع من الأقواس:   ()،   {}،   [].

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

رمز واحد:  +، إذا كانت جميع أنواع الأقواس في السطر متوازنة، و - بخلاف ذلك.

مثال

إدخال

{[() ()]}

إخراج

+

تلميح

There will be no clue here, decide for yourself!

main.py
اختبار 1
اختبار 2
اختبار 3
اختبار 4
اختبار 5
اختبار 6
اختبار 7
اختبار 8
اختبار 9
اختبار 10
حل المطور
def is_balanced(text):
    """
    Проверяет, сбалансированы ли скобки в строке.
    Поддерживаемые типы скобок: (), [], {}.
    """
    # Стек для хранения открывающих скобок
    stack = []
    
    # Словарь для сопоставления открывающих и закрывающих скобок
    brackets_map = {
        "(": ")",
        "[": "]",
        "{": "}"
    }
    
    # Множество открывающих скобок для быстрой проверки
    opening_brackets = set(brackets_map.keys())
    # Множество закрывающих скобок для быстрой проверки
    closing_brackets = set(brackets_map.values())

    for char in text:
        if char in opening_brackets:
            # Если символ - открывающая скобка, добавляем её в стек
            stack.append(char)
        elif char in closing_brackets:
            # Если символ - закрывающая скобка
            if not stack:
                # Если стек пуст, значит для закрывающей скобки нет пары
                return False
            
            # Берем последнюю открывающую скобку из стека
            last_open_bracket = stack.pop()
            
            # Проверяем, соответствует ли она текущей закрывающей
            if brackets_map[last_open_bracket] != char:
                return False
    
    # Если после прохода по всей строке стек пуст - все скобки закрыты правильно
    return len(stack) == 0

# Основная часть программы
input_string = input()
if is_balanced(input_string):
    print("+")
else:
    print("-")

🎉 تهانينا! 🎉

لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.

AD

إعلان

red-snake blue-snake green-snake

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

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

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