class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return bool布尔型
*/
bool isValid(string s) {
// write code here
//本题参考了“鸠摩罗什”的答案,如下
stack<char> a;//照例先定义一个栈
for(int i=0;i<s.size();i++)//遍历字符串中的元素
{
if(s[i]=='{')//将左括号对应的右括号入栈,下同
a.push('}');
else if(s[i]=='(')
a.push(')');
else if(s[i]=='[')
a.push(']');
else//对于右括号,如果栈空或者不匹配则返回假值
{
if(a.empty()||s[i]!=a.top())
return false;
a.pop();//否则就删掉一个栈中括号(出栈)
}
}
return a.empty();//如果能全部消完就是真值,否则为假值
}
};

京公网安备 11010502036488号