Check The Parentheses Sequence

by Michael Myers

JavaScript

function checkParenthesisSequence(s) {
	let stack = [];
  const matchedPairs = {
  ')' : '(',
  ']' : '[',
  '}' : '{',
  '{}' : '[]'
  }
  
  for (let char of s) {
  if (Object.values(matchedPairs).includes(char)) {
  	stack.push(char)
  } else if (matchedPairs[char] && stack.pop() != matchedPairs[char]) {
  	return false;
  	}
  }
  return stack.length === 0;
  
}

console.log(checkParenthesisSequence('({})[](){({[{}]})}')) // true
console.log(checkParenthesisSequence('(({})[](){({[{}]})}')) // false
console.log(checkParenthesisSequence('((({{[[(({{}}))]]}})))')) //true
console.log(checkParenthesisSequence('({})[](){({[}{}]})}')) // false