【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;
}

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页