2017-01-14 86 views
0

我解决了这个练习,检查括号是否嵌套正确,https://codility.com/programmers/lessons/7-stacks_and_queues/brackets/ 但它在某些测试中失败,正确率只有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; 
} 
+0

你在关闭后不需要';''' – BizzyBob

回答

2

之前你return 1

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

你忘了,在你的栈的所有支架都必须减少一个正确的支架串只需插入以下行。