Leetcode 20 Valid Parentheses
- 题目链接:leetcode.com/problems/va…
- 文章讲解:代码随想录 programmercarl.com
- 视频讲解:栈的拿手好戏!| LeetCode:20. 有效的括号
- 状态:没做出来
1. 第一想法
知道是用栈的,如果要自己试出来要花很多时间,觉得好麻烦。
2. 看完后想法
class Solution:
def isValid(self, s: str) -> bool:
stack = []
for item in s:
if item == '(':
stack.append(')')
elif item == '[':
stack.append(']')
elif item == '{':
stack.append('}')
elif not stack or stack[-1] != item:
return False
else:
stack.pop()
return True if not stack else False
3. 总结
先分析不匹配的情况。
Leetcode 1047 Remove All Adjacent Duplicates In String
- 题目链接:leetcode.com/problems/re…
- 文章讲解:代码随想录 programmercarl.com
- 视频讲解:栈的好戏还要继续!| LeetCode:1047. 删除字符串中的所有相邻重复项
- 状态:没做出来
1. 第一想法
感觉会不停循环下去...
2. 看完后想法
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)
3. 总结
常看常新。
Leetcode 150 Evaluate Reverse Polish Notation
- 题目链接:leetcode.com/problems/ev…
- 文章讲解:代码随想录 programmercarl.com
- 视频讲解:栈的好戏还要继续!| LeetCode:1047. 删除字符串中的所有相邻重复项
- 状态:没做出来
1. 第一想法
没什么想法。
2. 看完后想法
from operator import add, sub, mul
class Solution:
op_map = {'+': add, '-':sub, '*':mul, '/': lambda x, y: int(x/y)}
def evalRPN(self, tokens: List[str]) -> int:
stack = []
for token in tokens:
if token not in {'+', '-', '*', '/'}:
stack.append(int(token))
else:
op2 = stack.pop()
op1 = stack.pop()
stack.append(self.op_map[token](op1, op2))
return stack.pop()
3. 总结
常看常新。