chelout
function array_last(array $array) {
return $array[array_key_last($array)];
}
function brackets(string $string) {
$array = str_split($string);
$stack = [];
foreach ($array as $char) {
if (empty($stack)) {
array_push($stack, $char);
continue;
}
switch ($char) {
case '(':
case '{':
case '[':
array_push($stack, $char);
break;
case ')':
if (array_last($stack) === '(') {
array_pop($stack);
}
break;
case '}':
if (array_last($stack) === '{') {
array_pop($stack);
}
break;
case ']':
if (array_last($stack) === '[') {
array_pop($stack);
}
break;
}
}
return empty($stack);
}
dump(
brackets('[]{}(){{}{}')
);
array:1 [
0 => "{"
]
false
=> false