JS判断字符串小括号是否成对合法

摘要:要判断()是否成对;运用栈的后进先出 的特点,定义一个空数组,作为栈;for循环遍历字符串,当遇到(的时候就把(添加到空数组最顶端,push方法,记录发现一个左括号;

一、思路

要判断()是否成对;

运用栈的“后进先出“ 的特点,定义一个空数组,作为栈;

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()))))"));


 

 

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_2101