很啰嗦的ifififififififif...

括号序列

http://www.nowcoder.com/questionTerminal/37548e94a270412c8b9fb85643c8ccc2

class Solution {
public:
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    bool isValid(string s) {
        // write code here
        stack<char> stack1;
        for (int i = 0; i < s.length(); i++)
        {
            if (s[i] == '(' || s[i] == '{' || s[i] == '[')
                stack1.push(s[i]);

            // 如果栈空了,此时的右括号无前面的左括号对应,说明不符合规则
            if (s[i] == ')' || s[i] == '}' || s[i] == ']')
                if (stack1.empty())
                    return false;

            if (s[i] == ')')
            {
                if (stack1.top() != '(')
                    return false;
                stack1.pop();
            }

            if (s[i] == '}')
            {
                if (stack1.top() != '{')
                    return false;
                stack1.pop();
            }

            if (s[i] == ']')
            {
                if (stack1.top() != '[')
                    return false;
                stack1.pop();
            }

        }
        // 如果栈不空,即左括号无对应的有括号,说明字符串不符合规则
        if (!stack1.empty())
            return false;
        return true;
    }
};
全部评论

相关推荐

06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
缒梦&独舞:这家公司是这样的,去年给我实习offer了,不过也是面着玩儿的,他周六还要去做公益志愿活动
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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