棧的應用1--圓括號平衡

圓括號平衡,這裏可以看相關的問題描述

python數據結構與算法 5棧的應用之圓括號平衡


主要關心代碼的實現,

/*平衡圓括號*/
function isBracketBalanced(str) {
	/*
		@str:圓括號字符串,比如
			"()()"  "(()()())"  平衡
			"(()"  非平衡, 左括號較多
			"(()))))" 非平衡,右括號較多
	*/
	var pattern = /^(\(|\))*$/;
	if(!pattern.test(str)) {
		throw new Error("Your parameter can only include () character");
	}

	var stack = new Stack();
	for(var i=0; i<str.length; ++i) {
		if(str[i] == "(") {
			stack.push("(");
		}else {
			if(!stack.pop()){
				return false;
			}
		}
	}

	return stack.isEmpty();
}

console.log(isBracketBalanced("()()")); //true
console.log(isBracketBalanced("()())")); // false
console.log(isBracketBalanced("((()")); // false
console.log(isBracketBalanced("fafa"));  // throw error


發佈了88 篇原創文章 · 獲贊 37 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章