Untitled
unknown
javascript
2 years ago
1.1 kB
6
Indexable
let brackets = ['()', '{}', '[]']; let openers = new Set(); let closers = new Set(); let mapper = {}; brackets.map(item => { openers.add(item[0]); closers.add(item[1]); mapper[item[0]] = item[1]; mapper[item[1]] = item[0]; }) function isValid(s) { let toClose = []; for (let i = 0; i < s.length; i++) { let char = s.charAt(i); let isOpener = openers.has(char); if (isOpener) { toClose.push(mapper[char]); } else { if (!toClose.length) { return false } if (toClose.pop() !== char) { return false } } } return toClose.length === 0 } cases = [ ['', true], ['((()))', true], ['([()])', true], ['((]]))', false], ['((]]))', false], ['((]]){)', false], ['{[]([]())}', true], ] cases.map(item => { console.log('item', item[0], isValid(item[0])) })
Editor is loading...