码迷,mamicode.com
首页 > 其他好文 > 详细

堆栈_括号匹配

时间:2016-03-31 23:35:52      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

class Solution {
public:
    bool isValid(string s) {
        if(s.empty())
            return false;
        stack<int> s1;
        int n=s.size();
        for(int i=0;i<n;i++)
        {
            if(s[i]==(||s[i]==[||s[i]=={)
                s1.push(s[i]);
            else if(s1.empty())
                return false;
            else if((s[i]==)&&s1.top()==()||(s[i]==]&&s1.top()==[)||(s[i]==}&&s1.top()=={))
                s1.pop();
            else
                return false;
        }
        if(s1.empty())
            return true;
        else
            return false;
    }
};

此题的思路是:最前面的左括号要和最后面的右括号匹配,所以是一种先进后出的思想,使用堆栈最方便,且要注意括号的顺序,不能出现交叉的情况。

我在leetcode上做的时候,一开始没有注意到函数的返回值是bool,自己随便return值,所以出现了wrong answer,修改为返回false和true之后就正确了,细节要注意。

堆栈_括号匹配

标签:

原文地址:http://www.cnblogs.com/summerkiki/p/5343180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!