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

の前に次の行を挿入します。

関連する問題