题目:
解答:
这个看代码吧,使用栈记录所有左括号,然后如果遇到有匹配的右括号,就将其pop出来,否则报错
代码:
class Solution {
public:
bool isValid(string s) {
stack<int> stk;
stk.push(0);
for( string::iterator it = s.begin();it != s.end();++it ) {
if( *it == '(' )
stk.push(1);
else if( *it == '[' )
stk.push(2);
else if( *it == '{' )
stk.push(3);
else if( *it == ')' ) {
if( stk.top() == 1 )
stk.pop();
else
return false;
}
else if( *it == ']' ) {
if( stk.top() == 2 )
stk.pop();
else
return false;
}
else if( *it == '}' ) {
if( stk.top() == 3 )
stk.pop();
else
return false;
}
}
if( stk.top() == 0 ) return true;
return false;
}
};
更新会同步在我的网站更新(https://zergzerg.cn/notes/webnotes/leetcode/index.html)