JSFiddle - React, Tailwind, and code Playground
by Steven Senkus
JavaScript
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
let stack = [];
for (let i = 0; i < s.length; i++) {
let currentChar = s[i];
if (['(', '[', '{'].find((el) => {
return el === currentChar;
})) {
stack.push(currentChar);
} else {
let lastCharOnStack = stack[stack.length - 1];
switch (currentChar) {
case ')':
(lastCharOnStack === '(') ? stack.pop() : stack.push(currentChar);
break;
case '}':
(lastCharOnStack === '{') ? stack.pop() : stack.push(currentChar);
break;
case ']':
(lastCharOnStack === '[') ? stack.pop() : stack.push(currentChar);
break;
default:
stack.push(currentChar);
}
}
}
return stack.length === 0;
};
console.log('IS VALID?', isValid('()[]{}') === true);