• 1
    Entrada e saída
    • Tarefas
  • 2
    Condições
    • Tarefas
  • 3
    Loop for
    • Tarefas
  • 4
    Strings
    • Tarefas
  • 5
    Loop while
    • Tarefas
  • 6
    Listas
    • Tarefas
  • 7
    Matrizes 2D
    • Tarefas
  • 8
    Dicionários
    • Tarefas
  • 9
    Conjuntos
    • Tarefas
  • 10
    Funções e recursão
    • Tarefas
  • к

Lição 1. Entering and output of data

Dificuldade:

Tarefa«Equilíbrio de batalha»

💻 Python

Escreva um programa que verifica se todos os tipos de colchetes estão balanceados na linha.

Formato de entrada

Uma linha que pode conter qualquer caractere, incluindo três tipos de colchetes:   (),   {},   [].

Formato de saída

Um símbolo:   +, se todos os tipos de colchetes na linha estiverem balanceados, e   - caso contrário.

Exemplo

Entrada

{[() ()]}

Saída

+

Dica

There will be no clue here, decide for yourself!

main.py
Teste 1
Teste 2
Teste 3
Teste 4
Teste 5
Teste 6
Teste 7
Teste 8
Teste 9
Teste 10
Solução do desenvolvedor
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("-")

🎉 Parabéns! 🎉

Você resolveu a tarefa brilhantemente! Foi difícil, mas você encontrou a solução certa. Você está um passo mais perto de dominar a programação! Continue assim.

AD

Publicidade

red-snake blue-snake green-snake

Executando seu código...

Assistente de IA

Olá! Sou seu assistente de programação. Faça qualquer pergunta sobre Python — posso explicar funções, métodos e ajudá-lo com a tarefa atual!