Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
这道题主要是用到<stack>
代码:
class Solution {
public:
bool isValid(string s) {
stack<string> judge;
if(s.substr(0,1)==")"||s.substr(0,1)=="]"||s.substr(0,1)=="}")
return false;
for(int i=0; i<s.size(); i++){
if(s.substr(i,1)=="("||s.substr(i,1)=="["||s.substr(i,1)=="{")
judge.push(s.substr(i,1));
if(s.substr(i,1)==")"){
if(judge.empty())
return false;
if(judge.top()=="(")
judge.pop();
else
judge.push(s.substr(i,1));
}
if(s.substr(i,1)=="]"){
if(judge.empty())
return false;
if(judge.top()=="[")
judge.pop();
else
judge.push(s.substr(i,1));
}
if(s.substr(i,1)=="}"){
if(judge.empty())
return false;
if(judge.top()=="{")
judge.pop();
else
judge.push(s.substr(i,1));
}
}
if(judge.size()==0)
return true;
else
return false;
}
};