Задача: написать функцию, которая принимает строку скобок, и определить, является ли порядок скобок действительным. ['(',')'] - это действительный порядок скобок, ['(','('] - а это не действительный порядок, так как нет закрывающейся скобки. Функция должна возвращать true, если строка верна, и false, если она неверна.
Решение внизу правильное, однако я не могу понять как работает эта строчка if (close.indexOf(str[i]) === open.indexOf(stack[stack.length - 1])) что возвращает выражение слева и что вернет выражение справа и как это на пальцах работает ?
function validParentheses(str){
const stack = [], open = ['(', '{', '['], close = [')', '}', ']'];
for (var i = 0; i < str.length; i++) {
if (open.includes(str[i])) {
stack.push(str[i]);
} else {
if (close.indexOf(str[i]) === open.indexOf(stack[stack.length - 1])) {
stack.pop();
} else {
return false;
}
}
}
return stack.length === 0;
}
var a = ['(',')'];
console.log(validParentheses(a));
Продвижение своими сайтами как стратегия роста и независимости