Bracket Matching

by Amin Kodaganur

JavaScript

//Bracket Matching 

function validate(str){
	
  var validChecks = {
  	"(" : ")",
    "{" : "}",
    "[" : "]"
  }
  
  var stack = [];
  var lastBracket = "";
  var output = "valid";
  
  for(let i = 0; i<str.length; i++){
    if(str[i] == "(" || str[i] == "{" || str[i] == "["){
      stack.push(str[i]);
      lastBracket = str[i];
    } else if(str[i] == ")" || str[i] == "}" || str[i] == "]") {
      console.log(
        "currentBracket " , str[i], 
        "last", lastBracket,
        " Condition", validChecks[lastBracket] != str[i]
      ); 
      if(validChecks[lastBracket] != str[i]){
      	return "not valid";
      }else{
      	stack.pop();
      	lastBracket = stack[stack.length - 1];
      }
    }
  
  }
  
  return output;

}

console.log("-------- Result -------");
console.log(validate("{amin,(jhhh)}"));