qingcheng奕  

http://oj.leetcode.com/problems/valid-parentheses/

对栈的考察,看括号的使用方式是否合法。

class Solution {
public:
    bool isValid(string s) {
        if(s.empty() || s == "")
            return true;
        if(s.size()%2!= 0)
            return false;
        int i = 0;
        stack<char> myStack;
        while(i!=s.size())
        {
            if(s[i] == '(' || s[i] == '{' || s[i] == '[')
                myStack.push(s[i]);
            else
            {
                if(myStack.empty())
                    return false;
                char chStackTop = myStack.top();
                myStack.pop();
                if(s[i]== ')' && chStackTop!= '(' || s[i]== '}' && chStackTop!= '{' ||s[i]== ']' && chStackTop!= '[' )
                    return false;
                else if(s[i]!= ')' &&  s[i]!= '}' && s[i]!= ']')
                    return false;
            }
            i++;
        }
        if(myStack.empty())
            return true;
        else
            return false;
    }
};

 

posted on 2014-02-14 20:48  qingcheng奕  阅读(168)  评论(0编辑  收藏  举报