题目:有效的括号
代码:
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()
学习内容:
提示:这里可以添加要学的内容
例如:
- 搭建 Java 开发环境
- 掌握 Java 基本语法
- 掌握条件语句
- 掌握循环语句
学习时间:
提示:这里可以添加计划学习的时间
例如:
- 周一至周五晚上 7 点—晚上9点
- 周六上午 9 点-上午 11 点
- 周日下午 3 点-下午 6 点
学习产出:
提示:这里统计学习计划的总量
例如:
- 技术笔记 2 遍
- CSDN 技术博客 3 篇
- 习的 vlog 视频 1 个