📟作者主页:慢热的陕西人
🌴专栏链接:力扣刷题日记
📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言
文章目录
- 牛客热题:有效括号
- 题目链接
- 方法一:栈
- 思路
- 代码
- 复杂度
牛客热题:有效括号
题目链接
有效括号序列_牛客题霸_牛客网 (nowcoder.com)
方法一:栈
思路
入栈:
- 当栈内为空或者栈顶的括号和当前遍历到的括号是不匹配的
出栈:
- 当栈顶的括号和当前遍历到的括号是匹配的情况
代码
stack<char> st;
bool check(const char c)
{
if(c == ')' && st.top() == '(') return true;
else if(c == ']' && st.top() == '[') return true;
else if(c == '}' && st.top() == '{') return true;
else return false;
}
bool isValid(string s)
{
for(auto c : s)
{
if(!st.empty())
{
if(!check(c)) st.push(c);
else st.pop();
}
else
{
st.push(c);
}
}
return st.empty();
}
复杂度
时间复杂度:O(N) ,遍历了一遍string
空间复杂度:O(N), 创建了一个栈空间,用于临时存储括号