栈相关

合法括号序列判断

http://www.nowcoder.com/questionTerminal/d8acfa0619814b2d98f12c071aef20d4

栈相关解法

  • 题目意思有点没有描述清楚,但从AC情况来看,我理解正确了
  • 1、只用是(和)括号,不需要考虑{}和[]这样的
  • 2、出现了除了()之外的字符,就不合法
  • 3、要满足括号匹配

下面代码,顺路考虑了代码“健壮性”

  • throw "invalid case";
class Parenthesis {
public:
    bool chkParenthesis(string A, int n) {
        // write code here

        int len=A.size();
        if( len<0 )
        {
            //代码健壮性,不合法样例
            throw "invalid case";
        }
        if( 0==len )
        {
            return true;
        }
        stack<char> st;
        for(int i=0; i<len; ++i)
        {
            if( '('==A[i] )
            {
                st.push( A[i] );
            }
            else if( ')'==A[i] )
            {
                if( st.size()<=0 )
                {
                    return false;
                }
                else
                {
                    st.pop();
                }
            }
            else
            {
                //不合法数字
                return false;
            }
        }

        if( st.empty() )
        {
            return true;
        }
        else
        {
            return false;
        }
    }
};
全部评论

相关推荐

2025-11-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务