您的位置:首页 > 其它

leetCode 20 Valid Parentheses

2016-04-12 20:10 447 查看

问题

https://leetcode.com/problems/valid-parentheses/

解法一(2ms)

使用c++ stack实现

class Solution {
public:
bool isValid(string s) {
stack<char> st;
for (int i=0; i< s.size(); i++)
{
char c;
if (s[i] =='(' || s[i] == '{' || s[i]=='[')
st.push(s[i]);
else if (s[i] == ')')
{
if (st.empty() || st.top() != '(')
return false;
st.pop();
}else if (s[i] == '}')
{
if (st.empty() || st.top() != '{')
return false;
st.pop();
}else if (s[i] == ']')
{
if (st.empty() || st.top() != '[')
return false;
st.pop();
}
}
return st.empty();
}
};


解法二 (0ms)

自己维护堆栈

class Solution {
public:
bool isValid(string s) {
char st[s.size()];
int stPtr = -1;
for (int i=0; i< s.size(); i++)
{
char c;
if (s[i] =='(' || s[i] == '{' || s[i]=='[')
st[++stPtr] = s[i];
else if (s[i] == ')')
{
if (stPtr==-1 || st[stPtr] != '(')
return false;
stPtr--;
}else if (s[i] == '}')
{
if (stPtr==-1 || st[stPtr] != '{')
return false;
stPtr--;
}else if (s[i] == ']')
{
if (stPtr==-1 || st[stPtr] != '[')
return false;
stPtr--;
}
}
return stPtr==-1;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode