代码随想录 Leetcode20. 有效的括号

发布时间:2024年01月21日

题目:


代码(首刷自解 2024年1月21日):

class Solution {
    bool check(char ch1,char ch2) {
        if(ch1 == ')' && ch2 != '(') return true;
        else if(ch1 == ']' && ch2 != '[') return true;
        else if(ch1 == '}' && ch2 != '{') return true;
        else return false;
    }
public:
    bool isValid(string s) {
        if (s.size() < 2) return false;
        stack<char> stk;
        for (int i = 0; i < s.size(); ++i) {
            if (stk.empty()) {
                if(s[i] == ')' || s[i] == '}' || s[i] == ']') return false;
                else stk.push(s[i]);
            }else{
                if(s[i] == '(' || s[i] == '{' || s[i] == '[') stk.push(s[i]);
                else{
                    if(check(s[i],stk.top())) return false;
                    else{
                        stk.pop();
                        continue;
                    }
                }
            }
        }
        return stk.empty() ? true : false;
    }
};

时间复杂度高

代码(二刷看解析 2024年1月21日):

class Solution {
public:
    bool isValid(string s) {
        int n = s.size();
        if (n % 2 != 0) return false;
        stack<char> stk;
        for (int i = 0; i < n; ++i) {
            if (s[i] == '(') stk.push(')');
            else if (s[i] == '[') stk.push(']');
            else if (s[i] == '{') stk.push('}');
            else if (stk.empty() || s[i] != stk.top()) return false;
            else stk.pop();
        }
        return stk.empty();
    }
};

文章来源:https://blog.csdn.net/qq_52313711/article/details/135731605
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。