• 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 1. Entering and output of data

Schwierigkeit:

Aufgabe«Kampfbalance»

💻 Python

Schreiben Sie ein Programm, das prüft, ob alle Klammerarten in der Zeile ausgeglichen sind.

Eingabeformat

Eine Zeile, die beliebige Zeichen enthalten kann, einschließlich drei Arten von Klammern:   (),   {},   [].

Ausgabeformat

Ein Symbol:   +, wenn alle Klammerarten in der Zeile ausgeglichen sind, und   - andernfalls.

Beispiel

Eingabe

{[() ()]}

Ausgabe

+

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
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("-")

🎉 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!