20.有效的括号

简介: 20.有效的括号

20. 有效的括号


知识点

#include <unordered_map>
unordered_map<int,int> Hash = 
{
{')', '('},
{']', '['},
{'}', '{'}
};

用来生成哈希


标准解法

class Solution {
public:
    bool isValid(string s) {
        int n = s.size();
        if (n % 2 == 1) {
            return false;
        }
        unordered_map<char, char> pairs = {
            {')', '('},
            {']', '['},
            {'}', '{'}
        };
        stack<char> stk;
        for (char ch: s) {
            if (pairs.count(ch)) {
                if (stk.empty() || stk.top() != pairs[ch]) {
                    return false;
                }
                stk.pop();
            }
            else {
                stk.push(ch);
            }
        }
        return stk.empty();
    }
};
目录
相关文章
|
2月前
|
Java
有效的括号
本题要求判断一个仅包含 &#39;(&#39;, &#39;)&#39;, &#39;{&#39;, &#39;}&#39;, &#39;[&#39;, &#39;]&#39; 的字符串是否为有效字符串。有效条件是:每个左括号必须被相同类型的右括号正确闭合。空字符串视为有效。示例代码通过栈结构实现,遍历字符串中的每个字符,遇到左括号则将对应的右括号压入栈中,遇到右括号时检查栈顶元素是否匹配,最终栈为空则字符串有效。
9 0
|
7月前
20. 有效的括号
20. 有效的括号
|
8月前
22. 括号生成
22. 括号生成
56 4
|
7月前
22.括号生成
22.括号生成
|
8月前
|
C++
去括号问题(C++处理)
去括号问题(C++处理)
112 0
|
8月前
leetcode:有效的括号
leetcode:有效的括号
|
机器学习/深度学习 算法 安全
LeetCode - #20 有效的括号
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
LeetCode - #20 有效的括号
C#基础④——算数运算符(前加、后加、前减、后减)、关系运算符、逻辑表达式
C#基础④——算数运算符(前加、后加、前减、后减)、关系运算符、逻辑表达式
leetcode:20.有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
69 0