/**
* Verifica se os parênteses estão equilibrados na string ou não.
* Os parênteses que podem aparecer na string:
* [[{ e }]]
* @param {string} str
* @return {boolean}
*/
function parentheses(str) {
const open = ['(', '[', '{'];
const close = [')', ']', '}'];
const stack = [];
for (let i = 0; i < str.length; i++) {
const letter = str[i];
if (open.includes(letter)) {
stack.push(letter);
} else if (close.includes(letter)) {
const index = close.indexOf(letter);
const lastOpenIndex = stack.length - 1;
if (open[index] !== stack[lastOpenIndex]) {
return false;
} else {
stack.splice(lastOpenIndex, 1);
}
}
}
return stack.length === 0;
}
middle+