有效的括号

题目描述

  1. 题目地址:https://leetcode.cn/problems/valid-parentheses/
  2. 题目要求
    给定一个只包括 '(',')','{','}','[', ']'的字符串 s ,判断字符串是否有效。
    有效字符串需满足:
  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。
  1. 提示:
  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

解题思路

  1. 定义一个空栈,来存放字符值
  2. 遍历给定的字符串 s,获取字符串中的当前符号,如果是开头的符号则先入栈,如果是结尾的符号,就要和栈顶的符号做比较,看能不能变成一对
  3. 栈顶元素如果是符号开头,和当前遍历的符号如果是一对儿,则栈顶元素pop出去

解题代码

var isValid = function(s) {
let stack = [];
    for(let i=0;i<s.length;i++) {
        const start = s[i];
        if(s[i] == '('||s[i]=='{'||s[i]=='[') {
            stack.push(s[i]);
        }else{
            const end = stack[ stack.length-1];
            if(start == ')'&& end=='(' ||
            start == '}'&& end=='{' ||
            start == ']'&& end=='[') {
                stack.pop();
            }else{
                return false;
            }

        }
    }
    return stack.length == 0;


}
posted @ 2022-08-17 20:44  fionna  阅读(14)  评论(0编辑  收藏  举报