Valid Parentheses

问题:The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.,判断符合条件的符号([])也符合 分析:遇到左边符号进栈,右边符号就将栈顶出栈,若和当前遍历的符号相对应则继续遍历下一个符号,若不对应返回false

class Solution {
public:
    bool isValid(string s) {
        stack<char> S;
        char st;
        for(int i=0;i<s.size();i++)
        {
            if(s[i]=='(' || s[i]=='[' || s[i]=='{') S.push(s[i]);
            else if(S.empty()) return false;//如果栈为空出栈会导致RE
            else if(s[i]==')') 
            {
                st=S.top();
                if(st=='(') S.pop();
                else return false;
            }
            else if(s[i]==']')
            {
                st=S.top();
                if(st=='[') S.pop();
                else return false;
            }
            else if(s[i]=='}') 
            {
                st=S.top();
                if(st=='{') S.pop();
                else return false;
            }
        }
        if(!S.empty()) return false;
        return true;
    }
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android知识点总结

00--图解数据结构之开篇+集合基类

1358
来自专栏博客园

Mongo字符串类型的数值查询---$Where查询介绍

​        在Mongo中都知道字符串类型大小比较都是以ASCII进行比较的,所以无法真实比较字符串类型的数值大小

4044
来自专栏技术博客

设计模式之八(原型模式)

ConcretePrototype1,ConcretePrototype2具体原型类,实现一个克隆自身的操作

1001
来自专栏码匠的流水账

聊聊storm的AggregateProcessor的execute及finishBatch方法

本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法

771
来自专栏lhyt前端之路

小白的diff算法试试水之旅0.前言1. 主角1:Element构造函数2. 主角2:render函数3. 大主角: diff函数4. 更新5. 完成

先介绍一下虚拟dom的数据结构,我们都知道源码里面有createElement函数,通过他创建虚拟dom,然后调用render函数。还记得VUE脚手架住入口文件...

1102
来自专栏专注 Java 基础分享

深入理解循环队列----循环数组实现ArrayDeque

     我们知道队列这种数据结构的物理实现方式主要还是两种,一种是链队列(自定义节点类),另一种则是使用数组实现,两者各有优势。此处我们将要介绍的循环队列其实...

3168
来自专栏达摩兵的技术空间

当JSON.parse”遇上”非键值对

在json大行其道并作为前后端主要通讯的数据格式之一时,对json本身的使用和了解多少人都会有些概念,当然随之而来的也是对json的对象以及其字符串形式的互相转...

3733
来自专栏F_Alex

数据结构与算法(六)-背包、栈和队列

  前言:许多基础数据类型都和对象的集合有关。具体来说,数据类型的值就是一组对象的集合,所有操作都是关于添加、删除或是访问集合中的对象。而且有很多高级数据结构都...

1244
来自专栏海纳周报

Python的三个问题

第一,以下程序的执行结果是什么? def foo(a = []): a.append(1) print a foo()foo() 第二,以下...

2897
来自专栏技术栈大杂烩

Python locals() 的陷阱

在工作中, 有时候会遇到一种情况: 动态地进行变量赋值, 不管是局部变量还是全局变量, 在我们绞尽脑汁的时候, Python已经为我们解决了这个问题.

1452

扫码关注云+社区

领取腾讯云代金券