Sobes.tech
Intern

20. Gültige Klammern Gegeben ist eine Zeichenkette s, die nur die Zeichen '(', ')', '{', '}', '[' und ']' enthält. Bestimmen Sie, ob die Eingabekette gültig ist. Eine Eingabekette ist gültig, wenn: 1. Offene Klammern müssen mit derselben Art von Klammern geschlossen werden. 2. Offene Klammern müssen in der richtigen Reihenfolge geschlossen werden. 3. Jede schließende Klammer hat eine entsprechende offene Klammer desselben Typs. Beispiel 1: Eingabe: s = "()" Ausgabe: true Beispiel 2: Eingabe: s = "()[]{}" Ausgabe: true Beispiel 3: Eingabe: s = "(]" Ausgabe: false

sobes.tech KI

Antwort von AI

Для проверки валидности строки с скобками удобно использовать стек. Идея:

  • Проходим по символам строки.
  • Если символ — открывающая скобка, кладём её в стек.
  • Если закрывающая — проверяем, что верхний элемент стека соответствует ей по типу.
  • Если нет соответствия или стек пуст, строка невалидна.
  • В конце стек должен быть пустым.

Пример на Python:

def isValid(s):
    stack = []
    pairs = {')': '(', '}': '{', ']': '['}
    for char in s:
        if char in '([{':
            stack.append(char)
        elif char in ')]}':
            if not stack or stack.pop() != pairs[char]:
                return False
    return not stack

# Примеры
print(isValid("()"))      # True
print(isValid("()[]{}"))  # True
print(isValid("(]"))      # False