PHP Bracket
function bracket(string $s): int
{
$stack = [];
foreach (str_split($s) as $v) {
switch ($v) {
case ')':
if (empty($stack) || array_pop($stack) !== '(') {
return 0;
}
break;
case ']':
if (empty($stack) || array_pop($stack) !== '[') {
return 0;
}
break;
case '}':
if (empty($stack) || array_pop($stack) !== '{') {
return 0;
}
break;
default:
if ( ! empty($v)) {
$stack[] = $v;
}
break;
}
}
return empty($stack) ? 1 : 0;
}
This uses a simple stack approach: open brackets go in, matching closing brackets pop them out.