您的位置:首页 > 其它

[LeetCode] Valid Parentheses

2014-08-25 11:25 281 查看
Given a string containing just the characters
'('
,
')'
,
'{'
,
'}'
,
'['
and
']'
, determine if the input string is valid.

The brackets must close in the correct order,
"()"
and
"()[]{}"
are all valid but
"(]"
and
"([)]"
are not.

方法:用stack<char> 进行配对即可。

class Solution {
public:
bool isValid(string s) {
int len = s.size();
if(len==0)
return true;
else if(s[0]==')'|| s[0]==']'|| s[0]=='}')
return false;

stack<char> st;
for(int i=0;i<len;i++){
if(st.empty()){
st.push(s[i]);
}else if((s[i]=='}' && st.top()!='{')||(s[i]==')' && st.top()!='(')||(s[i]==']' && st.top()!='[')){
return false;
}else if((s[i]=='}' && st.top()=='{')||(s[i]==')' && st.top()=='(')||(s[i]==']' && st.top()=='[')){
st.pop();
}else{
st.push(s[i]);
}
}//end for
if(st.empty())
return true;
else
return false;
}//end func

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: