首页 > 其他分享 >栈基础题20、496、232

栈基础题20、496、232

时间:2023-08-26 20:12:03浏览次数:43  
标签:20 append item temperatures answer return 496 stack 232

20. 有效的括号

 1 class Solution:
 2     #遍历完字符串后,栈是空的,说明全部匹配了
 3     def isValid(self, s: str) -> bool:
 4         stack = []
 5         #剪枝
 6         if len(s) % 2 != 0:
 7             return False
 8 
 9         for item in s:
10             if item == '(':
11                 stack.append(')')
12             elif item == '[':
13                 stack.append(']')
14             elif item == '{':
15                 stack.append('}')
16             #第三种情况栈已经为空了,右边括号多了
17             #第二种情况是括号不匹配
18             elif not stack or stack[-1] != item:
19                 return False
20             else:
21                 stack.pop()
22         #第一种情况,遍历完字符串后,栈不为空,还有右括号在栈里,说明原字符串中左括号多余
23         return True if not stack else False
24
        #第二种:字典快一点
        stack = []
        mapping = {
            '(': ')',
            '[': ']',
            '{': '}'
        }
        for item in s:
            if item in mapping.keys():
                stack.append(mapping[item])
            elif not stack or stack[-1] != item: 
                return False
            else: 
                stack.pop()
        return True if not stack else False

 

单调栈 

496. 下一个更大元素 I

739. 每日温度

 1 class Solution:
 2     def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
 3         answer = [0]*len(temperatures)
 4         stack = [0]
 5         for i in range(1,len(temperatures)):
 6             # 情况一和情况二 当前元素比栈里元素小于等于时加入栈中
 7             if temperatures[i]<=temperatures[stack[-1]]:
 8                 stack.append(i)
 9             # 情况三 是一个持续过程,当前元素比栈顶元素大的时候,弹出栈顶元素,计算结果,并将当前元素加入栈里
10             else:
11                 while len(stack) != 0 and temperatures[i]>temperatures[stack[-1]]:
12                     answer[stack[-1]]=i-stack[-1]
13                     stack.pop()
14                 stack.append(i)
15 
16         return answer
17 
18         #精简版
19         # answer = [0]*len(temperatures)
20         # stack = []
21         # for i in range(len(temperatures)):
22         #     while len(stack)>0 and temperatures[i] > temperatures[stack[-1]]:
23         #         answer[stack[-1]] = i - stack[-1]
24         #         stack.pop()
25         #     stack.append(i)
26         # return answer


 

   

标签:20,append,item,temperatures,answer,return,496,stack,232
From: https://www.cnblogs.com/wuyijia/p/17658829.html

相关文章

  • 2023.8.21-2023.8.27暑假第七周博客
    2023.8.21今天主要是对mapreduce进行了一个了解,主要是对爬取下来的数据进行清洗的过程在本次的过程中,由于爬取的内容比较规整,因此采用的excel进行处理 mapreduce在我的理解中,对数据进行的是预处理,即把数据变得规整便于处理map阶段就是写对数据处理,即你想怎么优化这些数据re......
  • The 2022 ICPC Asia Nanjing Regional Contest (G. Inscryption)
    Problem-G-Codeforces反悔贪心#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;#defineendl"\n"constintN=1e6+5;inlineintgcd(inta,intb){returnb>0?gcd(b,a%b):a;}intmain(){ios::......
  • The 2022 ICPC Asia Nanjing Regional Contest(A.Stop, Yesterday Please No More)
    模拟边界(不是袋鼠)移动,通过二维差分维护左上角和右下角,同时注意排除重复的点#include<bits/stdc++.h>usingnamespacestd;#defineendl"\n"typedeflonglongll;constintN=1e3+5;intf[N][N];intmain(){ios::sync_with_stdio(false),cin.tie(0),cout.......
  • 2023.34 语音转文字STT
    在我们的日常生活和工作中,语音转文字(Speech-to-Text,简称STT)技术已经越来越普遍。无论是智能手机的语音助手、智能家居设备的语音控制,在线会议的实时字幕,还是录音转文字方便检索查阅,STT技术都在为我们提供便利。STT技术的基础主要来自于语音识别(SpeechRecognition)技术,该技术的目标......
  • 【面试小抄】2023最全Android面试综合题集,冲刺金九银十
    前言还有不到一个星期的时间就是金九银十了,前几个月一直在刷面试题,好为金九银十做准备,因此也在大量的面试题中总结了很多知识,今天特地将总结的内容分享给有需要的朋友,让他们把握好最后的冲刺时间。当然我并不提倡死背面试题,所以里面的内容除了面试题和答案,还有充分的讲解,希望大家能......
  • NC19989 [HAOI2012]容易题(EASY)
    题目链接题目题目描述为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下:有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取哪些值,我们定义一个数列的积为该数列所有元素的乘积,要求你求出所有可能的数列的积的和mod10000......
  • 2023-08-26 关于JSON.stringify会过滤调undefined值的问题 ==》在格式化之前先用type
    今天传参给后端的时候就发现了这么个问题,明明对象里面有这个字段a,但是打印出来死活没有,去掉json格式化后才发现是该值a为undefined,遂百度,故得知该值会被过滤掉。被过滤掉的原因是因为undefined值不符合JSON.stringify的规范。......
  • parallel-comparator-200
    直接上来就是c代码,这种题还是第一次做,直接写代码逆向回去就行了但是奈何水平太低写不回去。。。分析需要下面的两个字符串相等才能得到正确的程序,若要相等就只能让result等于0 那就意味着亦或的结果为0,也就意味着括号的结果与括号外的结果需相等 即(argument[0]+argume......
  • ME软件下载 Adobe Media Encoder2023最新版 详细安装方法
    一、软件介绍MediaEncoder2023是一款功能十分强大的视频和音频编码类的软件。ME是一款常用的视频音频编辑工具,使用这款软件可以对音视频进行编辑、转码,以及加入各种渲染效果等等。AdobeMediaEncoder2023可以收录、转码、创建代理和输出您可以想象的几乎任何格式。AdobeMedia......
  • [JSOI2018] 潜入行动
    题目描述外星人又双叒叕要攻打地球了,外星母舰已经向地球航行!这一次,JYY已经联系好了黄金舰队,打算联合所有JSOIer抵御外星人的进攻。在黄金舰队就位之前,JYY打算事先了解外星人的进攻计划。现在,携带了监听设备的特工已经秘密潜入了外星人的母舰,准备对外星人的通信实施监听。外......