• 1
    数据输入输出
    • 任务
  • 2
    条件语句
    • 任务
  • 3
    for循环
    • 任务
  • 4
    字符串
    • 任务
  • 5
    while循环
    • 任务
  • 6
    列表
    • 任务
  • 7
    二维数组
    • 任务
  • 8
    字典
    • 任务
  • 9
    集合
    • 任务
  • 10
    函数与递归
    • 任务
  • к

课程 1. Entering and output of data

难度:

任务«战斗平衡»

💻 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

正在运行代码...

AI助手

你好!我是你的编程助手。随时向我提问关于 Python 的问题——我可以解释函数、方法,并帮助你完成当前任务!