• 1
    Input and Output Data
    • Tasks
  • 2
    Conditions
    • Tasks
  • 3
    For Loop
    • Tasks
  • 4
    Strings
    • Tasks
  • 5
    While Loop
    • Tasks
  • 6
    Lists
    • Tasks
  • 7
    Two-Dimensional Arrays
    • Tasks
  • 8
    Dictionaries
    • Tasks
  • 9
    Sets
    • Tasks
  • 10
    Functions and Recursion
    • Tasks
  • к

Занятие 1. Entering and output of data

Difficulty level:

Task«Battle balance»

💻 Python

Write a program that checks whether all types of brackets are balanced in the line.

Input format

One line that can contain any characters, including three types Siberque: & nbsp; () , & nbsp; {} , & nbsp; [] .

Output format

+, if all types of brackets in the line are balanced, and & nbsp; - otherwise.

Example

Input

{[() ()]}

Output

+

Hint

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
Developer’s solution
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("-")

🎉 Congratulations! 🎉

You did an excellent job with the task! It was a challenging problem, but you found the correct solution. You are one step closer to mastering programming! Keep up the good work, because every stage you pass makes you even stronger.

AD

Advertisement

red-snake blue-snake green-snake

Running your code...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!