Sobes.tech
Junior — Middle
97

¿Cómo implementar una verificación de la corrección de la colocación de paréntesis en una cadena, usando el problema Valid Parentheses en LeetCode?

Empresas donde se preguntó
Актив

Respuesta de la IA

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()
}

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