вернуть тру если где-то пропущена скобка вернуть фолс, решил что можно просто через рекурсию реплейснуть все пары скобок типа "()" с "" и в итоге если строка пуста ее length будет 0 значит все скобки закрыты возвращаю тру, но у меня возвращает underfined, не могу понять почему
function validParentheses(parens){
const regEx = /(\(\))+/g;
let str = parens.replace(regEx, "");
if( str.match(regEx) ) {
validParentheses(str)
}
else {
return str.length === 0? true : false;
}
}
console.log(validParentheses("((()))"));
console.log(validParentheses("())"))
https://jsbin.com/joquvigive/edit?html,js,console,output
Здесь не нужен регексп. Просто пройди строку посимвольно, увеличивая целую переменную на один при открывающей скобке, и уменьшая при закрывающей. Если переменная в какой-то момент станет отрицательной, или в конце строки не 0, значит скобки не сбалансированы.
Обсуждают сегодня