JSFiddle - React, Tailwind, and code Playground
by Boba Poshtar
HTML
<p>Дано строку в якій можуть бути скобки (){}[]<>, потрібно перевірити чи всі скобки відкриті і закриті правильно і в правильному порядку. Повернути true чи false.</p>
<input>
<p>Результат: <span class="result">-</span></p>
JavaScript
let input = document.querySelector('input'),
result = document.querySelector('.result');
input.addEventListener('input', () => result.innerText = verify(input.value));
function verify(s){
let isBracket = (s, type) => (type === 'open' ? '([{<' : ')]}>').indexOf(s[0]) > -1;
let para = (s, arr) => ({')':'(',']':'[','}':'{','>':'<'})[s] === arr[arr.length - 1];
let brackets = [];
for (let i = 0; i < s.length; i++) {
if (isBracket(s[i], 'open')) brackets.push(s[i]);
if (isBracket(s[i], 'close'))
if (para(s[i], brackets)) brackets.pop();
else return false;
}
return brackets.length === 0;
}