0
点赞
收藏
分享

微信扫一扫

leetcode写题笔记 -- 有效的括号

就是耍帅 2022-03-26 阅读 41
c++leetcode
/*
20. 有效的括号

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

有效字符串需满足:
1. 左括号必须用相同类型的右括号闭合。
2. 左括号必须以正确的顺序闭合。

示例 1:
输入:s = "()"
输出:true
示例 2:
输入:s = "()[]{}"
输出:true
示例 3:
输入:s = "(]"
输出:false
示例 4:
输入:s = "([)]"
输出:false
示例 5:
输入:s = "{[]}"
输出:true

提示:
1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成
*/

#include<string>
using namespace std;
class Solution {
public:
    bool isValid(string s) {
        if (s.length() % 2)return false;

        stack<char> tmp;
        for (int i = 0; i < s.length(); i++) {
            if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
                tmp.push(s[i]);
            }
            else if (tmp.empty() || (tmp.top() == '(' && s[i] != ')') || (tmp.top() == '[' && s[i] != ']') || (tmp.top() == '{' && s[i] != '}'))return false;
            else tmp.pop();

        }
        return tmp.empty();
    }
};

// 0 ms + 6.2 MB
举报

相关推荐

0 条评论