JSFiddle - React, Tailwind, and code Playground

by bhupendra negi

JavaScript

// bracket validator
// [(())[]

function isBalanced(code) {

  const bracketsMatched = {
    '(': ')',
    '{': '}',
    '[': ']'
  };
  
  const leftBracket =  new Set(['(','{','[']) ,
  		  rightBracket = new Set([')','}',']']);
      
  const leftBracketStack =[];
  
  for (let i =0 ;i<code.length;i++) {
  let char = code.charAt(i);
  
  if (leftBracket.has(char)) {
    leftBracketStack.push(char);  
  }
  else if (rightBracket.has(char)) {
    if (!leftBracketStack) return false;
    
    let lastBracketInStack = leftBracketStack.pop();
    if (bracketsMatched[lastBracketInStack] !== char) {
     return false;
    }
  }  
  
  }
  return  leftBracketStack.length === 0;  
}


const re  = isBalanced(')({[]})');
console.log(re);