/**
* ტესტავს, არის თუ არა ბეჭდები ბალანსში ან არა.
* ბეჭდები, რომლებიც შეიძლება შეხვდეს სტრიქონში:
* [[{ და }]]
* @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+