leetCode 20 Valid Parentheses

来源:互联网 发布:wind万得资讯的数据库 编辑:程序博客网 时间:2024/06/17 22:02

问题

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;    }};
0 0
原创粉丝点击