Junior — Middle
100
Чӣ гуна иҷрои санҷиши дурустии ҷойгиршавии пардаҳоро дар сатр бо истифода аз масъалаи Valid Parentheses дар LeetCode?
Ширкатҳо дар куҷо пурсиданд
Актив
Ҷавоб аз 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()
}
Этот метод эффективно проверяет корректность вложенности и соответствия скобок.