Sobes.tech
Junior — Middle
99

LeetCode-деги Valid Parentheses маселесин колдонуп, сапта жакшылаштырган жабдыктардын туура жайгаштырылышын текшерүүнү кантип ишке ашыруу керек?

Кайсыл жерде компаниялар сурады
Актив

AIден жооп

sobes.tech AI

Для проверки правильности расстановки скобок в строке можно использовать стек. Идея в том, чтобы проходить по символам строки и:

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

В конце, если стек пуст, значит все скобки корректно закрыты.

Пример на Java/Kotlin:

fun isValid(s: String): Boolean {
    val stack = mutableListOf<Char>()
    val pairs = mapOf(')' to '(', ']' to '[', '}' to '{')

    for (char in s) {
        if (char in pairs.values) {
            stack.add(char)
        } else if (char in pairs.keys) {
            if (stack.isEmpty() || stack.removeAt(stack.size - 1) != pairs[char]) {
                return false
            }
        }
    }
    return stack.isEmpty()
}

Этот метод эффективно проверяет корректность вложенности и соответствия скобок.