检查 JavaScript 中括号的合法性


我们需要编写一个 JavaScript 函数,接收一个字符串 str,其中仅包含以下字符 −

'(', ')', '{', '}', '[' and ']'

我们的函数应该确定输入字符串是否有效。

如果满足以下条件,则输入字符串有效 −

  • 开括号必须用同类型的括号闭合。

  • 开括号必须按正确的顺序闭合。

例如 −

  • "()" 是有效的括号

  • "()[]{}" 是有效的括号

  • "(]" 是无效的括号

示例

此代码如下 −

const str = "()[]{}";
const isValid = (str = '') => {
   const map=new Map();
   map.set('{','}');
   map.set('(',')');
   map.set('[',']');
   const b=[];
   for(let i=0;i<str.length;i++){
      if(map.has(str.charAt(i))){
         b.push(str.charAt(i));
      } else{
         let pop=b.pop();
         if(map.get(pop)!==str.charAt(i)){
            return false;
         }
      };
   };
   return b.length===0;
};
console.log(isValid(str));

输出

控制台中的输出如下 −

true
false

更新时间:24-Nov-2020

2K+ 浏览量

开启您的职业生涯

完成课程获得认证

开始
广告