JSFiddle - React, Tailwind, and code Playground
by Alexey Ukolov
JavaScript
function isValidBrackets(str, rrr = false) {
var valid = false;
str.split('').forEach(function(v, i, a) {
if (v === ')') {
var tmp = a.slice(0, i + 1);
var x = tmp.join('').match(/\(/g).length;
var y = tmp.join('').match(/\)/g).length;
if (x === y) {
a.splice(i, 1);
a.splice(0, 1);
if (a.length === 0) {
valid = true;
if (rrr) {
console.log({v, i, tmp, x, y, a: JSON.parse(JSON.stringify(a)), valid});
}
return;
}
return isValidBrackets(a.join(''), true);
}
}
});
if (rrr) {
console.log(valid);
}
return valid;
}
['()()', '(())', '())(', ')(', ')(()', '))((', '(', ')', ''].forEach(function (item) {
console.log(item, isValidBrackets(item));
});