JSFiddle - React, Tailwind, and code Playground

by evgkch

JavaScript

// Dictionrary: "(", ")", "[", "]", "<", ">"
// @param {string} str
function verify(str){
	const stack = [];
  const strLength = str.length;
	for (let i = 0; i < strLength; i++){
  	const char = str[i];
    if (char == '(' || char == '[' || char == '<')
    	stack.push(char);
    else if (char == ')' || char == ']' || char == '>')
    {
    	if ((char == ')' && stack[stack.length - 1] == '(') ||
      		(char == ']' && stack[stack.length - 1] == '[') ||
          (char == '>' && stack[stack.length - 1] == '<'))
      	stack.pop();
      else
      	return false;
    }
  }
  return stack.length == 0;
}

console.log(verify('asdas<asda>sd'), true);
console.log(verify('asd(as<asda>)asd[as--d]sd'), true);
console.log(verify('asd(as<asda>)asd[as--dsd'), false);
console.log(verify(''), true);
console.log(verify(']'), false);