方法一
Runtime | Memory |
---|---|
8ms | 8.9MB |
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;
}
};
方法二
Runtime | Memory |
---|---|
4ms | 8.5MB |
class Solution {
public:
bool isValid(string s) {
stack<char> judge;
for(char &c : s){
switch(c){
case'(':case'[':case'{':judge.push(c); break;
case')':if(judge.empty()||judge.top()!='(') return false; else judge.pop(); break;
case']':if(judge.empty()||judge.top()!='[') return false; else judge.pop(); break;
case'}':if(judge.empty()||judge.top()!='{') return false; else judge.pop(); break;
default: ;
}
}
return judge.empty();
}
};