leetcode20.有效的括号

20有效的括号

题目

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

用例

输入:s = "()"
输出:true
输入:s = "()[]{}"
输出:true
输入:s = "(]"
输出:false
输入:s = "([)]"
输出:false
输入:s = "{[]}"
输出:true

求解

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    let stack = [];
    let i = 0;
    let len = s.length;
    let x = 0;
    while(x<len){
        if(s[x]=='('||s[x]=='{'||s[x]=='['){
            stack[i]=s[x];
            i++;
        }else{
            if(s[x]==')'){
                if(stack[i-1]=='('){
                    i--;
                }else{
                    return false
                }
            }
            if(s[x]=='}'){
                if(stack[i-1]=='{'){
                    i--;
                }else{
                    return false
                }
            }
            if(s[x]==']'){
                if(stack[i-1]=='['){
                    i--;
                }else{
                    return false
                }
            }
        }
        x++;
    }
    if(i==0){
        return true
    }else{
        return false
    }
};
posted @ 2021-10-28 12:30  BONiii  阅读(33)  评论(0)    收藏  举报