栈与括号匹配

括号序列

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

主要就是通过入栈出栈操作来完成括号匹配
1.在栈中没有一个元素时,则先将string中的第一个元素入栈
然后中止这次循环,开始下一次循环(通过continue来中止此次循环)
2.进行下一次循环,判断string中的下一个元素是否为')',']','}'然后判断栈的顶端元素是否为'(','[','{'
如果是,则出栈
3.最后判断栈中是否为空,空的话说明匹配成功
否则失败

class Solution {
public:
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    bool isValid(string s) {
        // write code here
        //通过入栈与出栈实现
        stack<char>stack1;//定义一个栈结构
        for(int n=0;n<s.size();n++){
            if(stack1.empty()) {
                stack1.push(s.at(n));
                continue;
                };
            if((s.at(n)==')'&&stack1.top()=='(')||(s.at(n)==']'&&stack1.top()=='[')||(s.at(n)=='}'&&stack1.top()=='{'))
                    stack1.pop();
            else stack1.push(s.at(n));
            }
        if(stack1.empty()) return true;
        else return false;
    }
};
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

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