其他分享
首页 > 其他分享> > 【LeetCode20】-有效的括号

【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