Php 括号正确嵌套代码练习

Php 括号正确嵌套代码练习,php,stack,Php,Stack,我解决了这个练习来检查括号是否正确嵌套, 但在一些测试中失败了,正确率只有33%。 我无法理解代码中的问题在哪里 function solution($S) { // write your code in PHP7.0 $string = str_split($S); $stack = []; foreach($string as $value){ switch ($value) { case '{': array_push($stac

我解决了这个练习来检查括号是否正确嵌套, 但在一些测试中失败了,正确率只有33%。 我无法理解代码中的问题在哪里

function solution($S) {

// write your code in PHP7.0
$string = str_split($S);
$stack = [];

foreach($string as $value){

    switch ($value) {   
        case '{':
            array_push($stack,$value);
        break;
        case '[':
            array_push($stack,$value);
        break;
        case '(':
            array_push($stack,$value);
        break;
        case '}':
            if(array_pop($stack) !== '{'){return 0;};
        break;
        case ']':
            if(array_pop($stack) !== '['){return 0;};
        break;
        case ')':
           if(array_pop($stack) !== '('){return 0;};
        break;
     }
  }
    return 1;
}

只需在您的
返回1

if (sizeof($stack) != 0) return 0;

您忘记了堆栈中的所有括号都必须缩小才能得到正确的括号字符串。

只需在
返回1之前插入以下行即可

if (sizeof($stack) != 0) return 0;

您忘记了堆栈中的所有括号都必须缩小才能得到正确的括号字符串。

您不需要
结束后
}
您不需要
结束后
}