用容器实现,原理同栈一样:
bool isValidParentheses(string& s) {
// Write your code here
vector<char> res;
for(int i=0;i<s.length();i++)
{
if(s[i]=='('||s[i]=='{'||s[i]=='[')
res.push_back(s[i]);
else if(s[i]==')')
{
if(!res.empty()&&res[res.size()-1]=='(')
res.pop_back();
else
return false;
}
else if(s[i]=='}')
{
if(!res.empty()&&res[res.size()-1]=='{')
res.pop_back();
else
return false;
}
else if(s[i]==']')
{
if(!res.empty()&&res[res.size()-1]=='[')
res.pop_back();
else
return false;
}
}
if(res.empty())
return true;
else
return false;
}
用栈实现:
bool isValidParentheses(string& s) {
// Write your code here
stack<char> st;
for(int i=0;i<s.length();i++)
{
if(s[i]=='('||s[i]=='{'||s[i]=='[')
st.push(s[i]);
else if(s[i]==')')
{
if(!st.empty()&&st.top()=='(')
st.pop();
else
return false;
}
else if(s[i]=='}')
{
if(!st.empty()&&st.top()=='{')
st.pop();
else
return false;
}
else if(s[i]==']')
{
if(!st.empty()&&st.top()=='[')
st.pop();
else
return false;
}
}
return st.empty();