Скобки правильно вложенного кода упражнения

Я решил это упражнение, чтобы проверить, правильно ли вложены скобки, 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

Решение

Просто вставьте следующую строку перед вашим return 1

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

Вы забыли, что все скобки в вашем стеке должны были быть уменьшены для правильной цепочки скобок.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]