2017-01-14 103 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; 

你忘了,在你的棧的所有支架都必須減少一個正確的支架串只需插入以下行。