Balanced Parentheses
HardStrings
The problem
Given a string of brackets ()[]{}, check whether they are balanced and correctly nested using a stack.
Sample input
{[()]}
Sample output
trueShow the solution · 8 languages
fun isBalanced(s: String): Boolean {
val pairs = mapOf(')' to '(', ']' to '[', '}' to '{')
val stack = ArrayDeque<Char>()
for (ch in s) {
if (ch in "([{") {
stack.addLast(ch)
} else if (ch in ")]}") {
if (stack.isEmpty() || stack.removeLast() != pairs[ch]) return false
}
}
return stack.isEmpty()
}
fun main() {
println(isBalanced("{[()]}"))
}