【LeetCode20】-有效的括号
作者:互联网
实现思路:
使用栈进行实现,非常的简单,就是满足匹配了就弹栈,不满足就压栈,最后判断栈是否为空,为空说明是有效的括号
实现代码:
#include <iostream>
#include <stack>
using namespace std;
class Solution {
public:
bool isValid(string s) {
stack<char> st;
for (int i = 0;i < s.length();i++) {
if (s[i] == ' ') continue;
if (!st.empty()) {
int flag = 1;
switch (s[i]) {
case ']': {if (st.top() == '[') { st.pop(); flag = 0; }}break;
case ')': {if (st.top() == '(') { st.pop(); flag = 0; }}break;
case '}': {if (st.top() == '{') { st.pop(); flag = 0; }}break;
}
if(flag) st.push(s[i]);
}
else st.push(s[i]);
}
return st.empty();
}
};
int main() {
Solution s;
string ss= "{[]}";
cout << s.isValid(ss);
return 0;
}
标签:case,有效,int,top,pop,st,括号,flag,LeetCode20 来源: https://blog.csdn.net/weixin_44944046/article/details/112392848