12 lines
503 B
Groovy
12 lines
503 B
Groovy
boolean balancedBrackets(String brackets, int depth=0) {
|
|
if (brackets == null || brackets.empty) return depth == 0
|
|
switch (brackets[0]) {
|
|
case '[':
|
|
return brackets.size() > 1 && balancedBrackets(brackets[1..-1], depth + 1)
|
|
case ']':
|
|
return depth > 0 && (brackets.size() == 1 || balancedBrackets(brackets[1..-1], depth - 1))
|
|
default:
|
|
return brackets.size() == 1 ? depth == 0 : balancedBrackets(brackets[1..-1], depth)
|
|
}
|
|
}
|