栈
约 245 字小于 1 分钟
2025-03-14
题目与题解
20. 有效的括号
难度:简单
标签:栈 字符串
题目描述:
给定一个只包括 ( ) { } [ ]
的字符串 s
,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
注
使用栈
来存储出现过的左括号
,每当出现右括号
时检查栈内是否存在匹配
的左括号,若匹配则弹出并继续流程,否则就是不匹配,即括号对
不符合要求。
class Solution {
public:
bool isValid(string s) {
stack<char> st;
for (char c : s) {
switch(c) {
case '(':
case '[':
case '{':
st.push(c);
break;
case ')':
if (!st.empty() && st.top() == '(') {
st.pop();
break;
}
else {
return false;
}
case ']':
if (!st.empty() && st.top() == '[') {
st.pop();
break;
}
else {
return false;
}
case '}':
if (!st.empty() && st.top() == '{') {
st.pop();
break;
}
else {
return false;
}
}
}
return st.empty();
}
};