河北建设网站怎么下载企业锁汕头网站建设维护
题目:给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
 有效字符串需满足:
 左括号必须用相同类型的右括号闭合。
 左括号必须以正确的顺序闭合。
 每个右括号都有一个对应的相同类型的左括号。
#include<iostream>
#include<vector>
#include<map>
#include<unordered_map>
#include<stack>
using namespace std;unordered_map<char, char> up = {{'(' , ')'},{'{' , '}'},{'[' , ']'},
};class Solution 
{
public:bool isValid(string s){stack<char> st;for (char c : s){if (up.count(c))  //判断c是否是up的键,是的话就压栈{st.push(c);   }else if(st.empty() ||  up[st.top()] != c){return false;}else //up[st.top()] == c{st.pop();}}return st.empty();}
};int main()
{Solution a;cout <<"a.isPalindrome : " << a.isValid("{([])}") << endl;return 0;
}