题目描述

代码
class Solution {
public:
bool isValid(string s) {
int n = s.size();
if (n % 2 == 1) {//如果是奇数,直接pass掉
return false;
}
unordered_map<char, char> pairs = {
{')', '('},
{']', '['},
{'}', '{'}
};
stack<char> stk;
for (char ch: s) {
if (pairs.count(ch)) {//这步太细了,这也就是他为毛map集设置为,有括号为key的原因吧。
if (stk.empty() || stk.top() != pairs[ch]) {
return false;
}
stk.pop();
}
else {
stk.push(ch);
}
}
return stk.empty();
}
};
本文介绍了LeetCode第20题的有效括号问题,通过一个C++代码实现来判断括号字符串是否有效。代码中使用了栈的数据结构,检查括号的配对情况。当遇到开括号时将其压入栈,遇到闭括号时检查栈顶元素是否为其对应的开括号,从而确保括号的有效性。最后,如果栈为空则说明括号匹配成功。
1491

被折叠的 条评论
为什么被折叠?



