LeetCode--Valid Parentheses

来源:互联网 发布:个人简历制作模板软件 编辑:程序博客网 时间:2024/06/05 02:50

问题

这个问题是非常简单的。就是匹配括号。那么要用到stack这个数据结构。而用C++的stack来编写,问题变得非常简单。
同时感谢这篇博客的博主
http://blog.csdn.net/zhouworld16/article/details/17629755

代码分析

class Solution {public:    bool isValid(string s)    {        stack<char> charStack;        size_t i = 0;        while (i != s.length())        {            char ch = s[i];            //如果是左括号            if (ch != ')' && ch != '}' && ch != ']')            {                charStack.push(ch);            }            //如果是右括号            else            {                if (charStack.size() == 0)                {                    return false;                }                char pre = charStack.top();                switch (ch)                {                case ')':                    if (pre == '('){                        charStack.pop();                    }                    else{                        return false;                    }                    break;                case ']':                    if (pre == '['){                        charStack.pop();                    }                    else{                        return false;                    }                    break;                case '}':                    if (pre == '{'){                        charStack.pop();                    }                    else{                        return false;                    }                    break;                default:                    break;                }            }            i++;        }        if (charStack.size() == 0)        {            return true;        }        else        {            return false;        }    }};
原创粉丝点击