代码随想录刷题day11

题目:有效的括号

代码:

class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        zhan = []
        for si in s:
            if si == '(':
                zhan.append(')')
            elif si == '{':
                zhan.append('}')
            elif si == '[':
                zhan.append(']')
            elif len(zhan) == 0 or zhan[-1] != si:
                return False
            else:
                zhan.pop()

        if len(zhan) == 0:
            return True
        return False

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

备注: 如果不让用栈可以使用双指针

代码:

class Solution:
    def removeDuplicates(self, s: str) -> str:
        res = list()
        for item in s:
            if res and res[-1] == item:
                res.pop()
            else:
                res.append(item)
        return "".join(res)  # 字符串拼接

题目:逆波兰表达式求值

注意:注意python的/和//都是向下取整(尤其针对负数计算),因此如果计算负数的时候想向上取整,应该先换算成float计算再转化成int

代码:

class Solution(object):
    import math 
    def evalRPN(self, tokens):
        """
        :type tokens: List[str]
        :rtype: int
        """
        numbers = []
        for t in tokens:fushu
         
            if t == '+' or t == '-' or t == '*' or t=='/':
                num2 = numbers.pop()
                num1 = numbers.pop()
                if t == '+':
                    res = num1 + num2
                elif t == '-':
                    res = num1 - num2
                elif t == '*':
                    res = num1 * num2
                else:
                    res = float(num1) / num2#这里浪费了无数的时间 -6/
                    res = int(res)
                numbers.append(res)
 
            else:#如果是数字
                numbers.append(int(t))


        return numbers.pop()

学习内容:

提示:这里可以添加要学的内容

例如:

  1. 搭建 Java 开发环境
  2. 掌握 Java 基本语法
  3. 掌握条件语句
  4. 掌握循环语句

学习时间:

提示:这里可以添加计划学习的时间

例如:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

学习产出:

提示:这里统计学习计划的总量

例如:

  • 技术笔记 2 遍
  • CSDN 技术博客 3 篇
  • 习的 vlog 视频 1 个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值