括弧
は実際には残高記号です。
スタックを使えば解決できます。詳しくは本を読んでください。
コード:
function solution($S) { // write your code in PHP5.5 $open_symb = array( '{', '[', '(' ); $close_symb = array( '}', ']', ')' ); $check = array(); for($i = 0; $i< strlen($S); $i++) { $v = $S[$i]; if (in_array($v, array_values($open_symb))) { array_push($check, $v); } elseif (in_array($v, array_values($close_symb))) { $symbol = array_pop($check); $cor_symbol = array_search($v, $close_symb); if ($symbol !== $open_symb[$cor_symbol]) { return 0; } } } if (!empty($check)) { return 0; }