Stack

//brute force 一直替换

//O(n) - O(n)
var isValid = function (s) {
	if (s.length % 2 === 1) return false
	const stack = [],
		hash = {
			'(': ')',
			'[': ']',
			'{': '}',
		}
	for (let c of s) {
		if (hash[c]) {
			stack.push(hash[c])
		} else {
      //囊括stack为空弹出undefined的情况
			if (c !== stack.pop()) return false
		}
	}
	return stack.length === 0
}

Last updated