JS判断字符串小括号是否成对合法
一、思路
要判断()是否成对;
运用栈的“后进先出“ 的特点,定义一个空数组,作为栈;
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()))))"));
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!