25期代码随想录算法训练营第十天 | 栈与队列 part 2

目录

  • [20. 有效的括号](#20. 有效的括号)
  • [1047. 删除字符串中的所有相邻重复项](#1047. 删除字符串中的所有相邻重复项)
  • [150. 逆波兰表达式求值](#150. 逆波兰表达式求值)

20. 有效的括号

链接

python 复制代码
class Solution:
    def isValid(self, s: str) -> bool:
        closeToOpen = {")": "(", "]":"[", "}":"{"}
        stack = []

        for string in s:
            if string not in closeToOpen:
                stack.append(string)
            else:
                if not stack or stack.pop() != closeToOpen[string]:
                    return False
        
        return len(stack) == 0

1047. 删除字符串中的所有相邻重复项

链接

python 复制代码
class Solution:
    def removeDuplicates(self, s: str) -> str:
        stack = []

        for string in s:
            if not stack:
                stack.append(string)
            else:
                if string == stack[-1]:
                    stack.pop()
                else:
                    stack.append(string)
        return ''.join(stack)

150. 逆波兰表达式求值

链接

python 复制代码
from operator import add, mul, sub
class Solution:
    def evalRPN(self, tokens: List[str]) -> int:
        stack = []
        op_map = {"+": add, "-": sub, "*": mul, "/": lambda x,y: int(x/y)}

        for token in tokens:
            if token not in op_map:
                stack.append(token)
            else:
                y = int(stack.pop())
                x = int(stack.pop())
                res = op_map[token](x, y)
                stack.append(res)
        
        return int(stack[-1])
相关推荐
EntyIU3 小时前
创建FastAPI项目步骤
网络·python·fastapi
隔壁大炮3 小时前
MNE-Python 第4天学习笔记:数据预处理(一)—— 滤波与重参考
python·eeg·mne·脑电数据处理
深度先生3 小时前
pip 与包管理基础——你的第一个包管理工具
python
迈巴赫车主3 小时前
码蹄集 MC0457符咒封印java
java·数据结构·算法
biter down3 小时前
6:控件操作与鼠标模拟
开发语言·python
沉下去,苦磨练!3 小时前
python的数据分析Pandas
python·数据分析·pandas
import_random3 小时前
[python]numpy.arange()函数的使用
python
aqi003 小时前
15天学会AI应用开发(五)使用AI摘要来压缩上下文消息
人工智能·python·大模型·ai编程·ai应用
叶梓翎3 小时前
AI语义搜索本地素材一键整合包官方下载
人工智能·python·图搜索
敲代码的小王!3 小时前
Python 核心语法 —— 数据、流程与容器
开发语言·python