首页 > 编程语言 >letcode算法--20.有效的括号

letcode算法--20.有效的括号

时间:2022-09-07 17:11:42浏览次数:62  
标签:ch 20 -- pop 括号 && return letcode stack

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
 

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法一:出栈入栈

class Solution {
    public boolean isValid(String s) {
        int len = s.length();
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < len; i++) {
            char ch = s.charAt(i);
            if (ch == '(' || ch == '{' || ch == '[') stack.push(ch);
            else if (stack.isEmpty()) return false;
            else if (ch == ')' && stack.pop() != '(') {
                return false;
            }
            else if (ch == '}' && stack.pop() != '{')return false;
            else if (ch == ']' && stack.pop() != '[') {
                return false;
            }
//            else if(stack.isEmpty() || (ch == ')' && stack.pop() != '(') || (ch == '}' && stack.pop() != '{') || (ch == ']' && stack.pop() != '['))
//                return false;
        }
        return stack.isEmpty();
    }
}

标签:ch,20,--,pop,括号,&&,return,letcode,stack
From: https://www.cnblogs.com/xinger123/p/16666524.html

相关文章

  • SAP 角色如何传输
    1PFCG创建角色  2,utilities-----masstransport   3,输入角色。(注意模板角色与子角色的区别)  4,执行后会要求输入请求号.。  5,SE10释放请求号。......
  • linux 信号概念
    信号的概念信号(Signal)是一种软件中断,比如Ctrl+C的退出命令实质上就是使用了信号。信号在Linux操作系统中提供了一种处理异步事件的方法,可以很好地在多个进程之间进行同步......
  • bootstrap-treeview
    目录#文档#使用1.引用2.定义容器3.初始化4.效果图#自定义函数#文档https://www.npmjs.com/package/bootstrap-treeviewhttps://github.com/jonmiles/bootstrap-tree......
  • Ubuntu内网穿透搭建网站:安装cpolar内网穿透工具 7/17
    在之前的几篇文章中,我们在Ubuntu中安装了wordpress、apache2、Mysql几个软件,并对wordpress进行了基本设置,成功的制作出属于我们自己的网页。虽然这个网页看起来还有些简陋,......
  • 视频融合平台EasyCVR如何添加大华设备的云台功能?
    EasyCVR平台支持多种协议、多种类型的设备接入,可以实现视频直播、转码与分发、平台级联、云台控制等,拥有灵活丰富的视频能力。平台基于云边端一体化架构,可在复杂的网络环境......
  • python 将print内容打印到文件中
    python中print内容打印到文件中importsysfile=open("502log.txt",'a')sys.stdout=fileprint(time.asctime(),"开始请求。。。。。")file.close()这里将prin......
  • upload-labs靶场修炼手册
    upload-labs靶场攻略upload-labs靶场的安装搭建(windows10)第一步先下载phpstudy,和靶场:GitHub-c0ny1/upload-labs:一个想帮你总结所有类型的上传漏洞的靶场。下载后解......
  • Ubuntu18.04下载与安装,以及中文输入法的安装(转)
    Ubuntu18.04下载与安装一、下载二、安装(在VMware16pro中安装Ubuntu18.04)三、Ubuntu中安装中文输入法1.检查fcitx框架2.安装输入法一、下载下载地址:UbuntuReleases往......
  • ShardingSphere-JDBC
    概述ApacheShardingSphere‐JDBC可以通过Java,YAML,Spring命名空间和SpringBootStarter这4种方式进行配置,开发者可根据场景选择适合的配置方式。本文章主要讲解数......
  • Mac文本识别工具推荐
    TextSniperMac是一款简单易用的Mac文本识别工具。它提取屏幕上选定部分内的任何文本,并将其转换为可编辑的文本。轻松识别图形、数字文档和视频中的文本。您可以让TextS......