Untitled

 avatar
unknown
php
3 years ago
990 B
18
Indexable
<?php

$valid = '2*([23])';
$invalid = '3+{21()';

function isStrValid(string $str): bool {
    $len = strlen($str);
    $stack = [];
    for ($i = 0; $i < $len; $i++) {
        switch ($str[$i]) {
            case '(':
                $stack[] = 0;
                
                break;
            case ')':
                if (0 !== array_pop($stack)) {
                    return false;
                }

                break;
            case '[':
                $stack[] = 1;

                break;
            case ']':
                if (1 !== array_pop($stack)) {
                    return false;
                }

                break;
            case '{':
                $stack[] = 2;
                
                break;
            case '}':
                if (2 !== array_pop($stack)) {
                    return false;
                }

                break;
        }
    }

    return empty($stack);
}

var_dump(isStrValid($valid), isStrValid($invalid));
Editor is loading...