美文网首页
笔试刷题-去哪儿2018-06-26

笔试刷题-去哪儿2018-06-26

作者: Dodo159753 | 来源:发表于2018-06-26 07:59 被阅读0次

    题目描述:

    
    /**
    时间限制:3秒
    
    空间限制:32768K
    
    写一段代码,判断一个包括'{','[','(',')',']','}'的表达式是否合法(注意看样例的合法规则。)
    
    给定一个表达式A,请返回一个bool值,代表它是否合法。
    
    测试样例:
    "[a+b*(5-4)]*{x+b+b*(({1+2)}}"
    返回:true
    */
    

    思路如下:

    维护一个栈即可

    代码如下:

    
    class ChkExpression {
    public:
        bool chkLegal(string A) {
            // write code here
            stack<char> st;
            for(int i=0; A[i]!='\0'; i++)
            {
                if(A[i]=='{' || A[i]=='[' || A[i]=='(')
                    st.push(A[i]);
                else if(A[i]=='}' || A[i]==']' || A[i]==')'){
                        if(st.empty())
                            return false;
                        st.pop();
                }
            }
            return st.empty();
        }
    };
    
    
    

    相关文章

      网友评论

          本文标题:笔试刷题-去哪儿2018-06-26

          本文链接:https://www.haomeiwen.com/subject/grqpyftx.html