JS判斷字符串小括號是否成對合法
阿新 • • 發佈:2019-02-23
分享 true 圖片 alt 運用 彈出 return pre 發現
一、思路
- 要判斷()是否成對;
- 運用棧的“後進先出“ 的特點,定義一個空數組,作為棧;
- for循環遍歷字符串,當遇到“(”的時候就把“(”添加到空數組最頂端,push方法,記錄發現一個左括號;
- 當遇到“)”就把數組中最頂端的元素彈出來,pop方法,抵消一個左括號。註意如果此時數組是空的,但是遇到“)”說明沒有“(”缺少成對的“)”,則返回false;
- 不是括號的字符就不用考慮,讓for循環繼續執行,continue。
- 遍歷完成後,判斷棧是否為空。如果為空則表明左右括號數量剛好抵消,則返回true,否則返回false。
二、代碼
function is_leagl_brackets(string) {var array = []; for (var i = 0; i < string.length; i++) { var item = string[i]; if (item === "(") { array.push("("); } else if (item === ")") { if (array.length === 0) { return false; } else { array.pop(); } } else { continue; } };return array.length === 0; }; console.log("(asd):", is_leagl_brackets("(asd)")); console.log("asd(asd(adsfsdf(asdf())))):", is_leagl_brackets("asd(asd(adsfsdf(asdf()))))"));
三、查看結果
JS判斷字符串小括號是否成對合法