//使用栈的思想,先进后出原则,因为出来的必须是与目前的括号形成一对
bool isValid(string s) {
if (s.size() == 0)return true;
if (s.size() == 1)return false;
stack<char>Temp;
for (int i = 0; i < s.size(); ++i) {
if (s[i] == '(' || s[i] == '['|| s[i] == '{')
Temp.push(s[i]);
else {
if (Temp.empty()) return false;//栈不为空
if (s[i] == ')'&&Temp.top() != '(')return false;//不能匹配
if (s[i] == ']'&&Temp.top() != '[')return false;//不能匹配
if (s[i] == '}'&&Temp.top() != '{')return false;//不能匹配
Temp.pop();//匹配成功
}
}
if (Temp.empty())
return true;
else
return false;
}