Validate brackets

3 years ago

chelout

Code

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('[]{}(){{}{}')
);

Output

array:1 [
  0 => "{"
]
false
=> false
New course: Desktop apps with Electron