首页 > 编程语言 >leetcode 20. 有效的括号 Java

leetcode 20. 有效的括号 Java

时间:2023-04-02 16:56:20浏览次数:35  
标签:map 20 示例 括号 length 字符串 put Java leetcode

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

有效字符串需满足:

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

示例 1:

输入:s = "()"
输出:true

示例 2:

输入:s = "()[]{}"
输出:true

示例 3:

输入:s = "(]"
输出:false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成
class Solution{
		public boolean isValid(String s){
      int length = s.length();
      if(length % 2 == 1){
        return false;       // 如果不是成对的则直接返回错误
      }
      Map<Character,Character> map = new HashMap<Character,Character>();
      map.put(')','(');
      map.put(']','[');
      map.put('}','{');
      Deque<Character> stack = new ArrayDeque<Character>();
      for(int i = 0;i<length;i++){
       		char ch = s.charAt(i);   
        	if(map.containsKey(ch)){   // 如果ch为右括号
                  if(stack.isEmpty()||stack.peek()!=map.get(ch)){
                  return false;
            }
            stack.pop();
          }else{
            stack.push(ch);
          }
      }
      return stack.isEmpty();
    }
}

标签:map,20,示例,括号,length,字符串,put,Java,leetcode
From: https://www.cnblogs.com/metatreasure/p/17280747.html

相关文章

  • java——spring boot集成kafka——kafka线上问题优化——如何做到顺序消费
          ......
  • Leetcode(剑指offer专项训练)——DP专项(6)
    排序的数目题目给定一个由不同 正整数组成的数组nums,和一个目标整数target。请从nums中找出并返回总和为target的元素组合的个数。数组中的数字可以在一次排列中出现任意次,但是顺序不同的序列被视作不同的组合。题目数据保证答案符合32位整数范围。链接无效DFS......
  • Leetcode(剑指offer专项训练)——DP专项(5)
    最少的硬币数目给定不同面额的硬币coins和一个总金额amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。链接完全背包问题思路:主要是要自己推出动态转移方程\[F(i)=mi......
  • java——spring boot集成kafka——kafka线上问题优化——如何防止数据丢失和重复消费
          ......
  • 2023 联合省选 游寄
    虽然考的挺差,能寄的都急了,但是玩得挺开心的,所以写篇游记。觉得我人菜还开心的可以不看谢谢喵。Day0下午和whl上了火车,打了个exgcd,然后感觉到一股东方的神秘力量,感受到无法言说的疲乏,于是听音乐睡大觉。晚上吃喜家德,遇到lhx和ljy。强大的lhx疯狂假人。Day1搭实验的......
  • Java实现新建三个线程,每个线程顺序打印5个数字,打印到100
    方法一:synchronized+wait+notify//三个线程循环打印数字,每个打印5个,打印数字到numclassWaitNotifyABC{  privatevolatileintnum=0;//线程共享变量  /**Object和this都可以对同步代码块加锁,但是this锁的是类的实例,如果该实例被他人拿走,  则本线......
  • javascript VS python 变量作用域
    js中函数内部默认是可以读取到外部声明的变量,python不可以,必须使用关键字globalglobal必须在函数内部使用,用以内化函数外部变量。在函数外部是无法声明全局变量的,或者说所谓的全局变量在函数内部是不好使的,这还叫什么全局变量?应该叫局外变量。而global是内部跟局外变量建立一种......
  • 2023联合省选退役记
    2023.03.15开坑。今天官网上有了SC省选的通知,内容没什么惊喜。说什么要求NOIP必须\(120\)分以上的同学才能参加,我不说针对的是谁。我也不说有谁被卡了。另外就是NOI新大纲发布了,你说得对但是虚树变成十级知识点了。大雾。中间的两周2023.03.16联考。垫底。2023.03.......
  • HEOI2023 游记
    Day-inf背景:NOIP2022没考的高二退役选手春季赛前同高一选手一起上奥赛课春季赛考完不知道分但是好像能去省选一开始我和bikuhiku都是拒绝的但是一想不如去一趟于是我们两个就都报上名了(中间有个自习听到省选的消息的时候笑了一整节课)中间放假问bikuhiku要不要奥赛课......
  • 蜂鸟E203 仿真之路
    本文记录自己在学习蜂鸟E203的过程。下面简单介绍一下仿真之路所遇到的困难和走过的坑。1、环境开发:一般选择ubuntu18.04这个版本,安装这个教程很多,可以自行学习。2、在Linux中安装工具:sudoapt-getinstallautoconfautomakeautotools-devcurldevice-tree-compilerlib......