1.题目描述
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
#python
class Solution:
def isValid(self, s: str) -> bool:
if len(s) % 2 == 1:
return False
#思考奇数肯定不对
pairs = {
")": "(",
"]": "[",
"}": "{",
}
stack = list()
for ch in s:
if ch in pairs:
if not stack or stack[-1] != pairs[ch]:
return False
stack.pop()
else:
stack.append(ch)
return not stack
2.题目描述
给定一个二叉树的根节点 root ,返回它的 中序遍历。
这道题目按照要求遍历数就是 左 根 右的顺序
解法一:递归
class Solution(object):
def inorderTraversal(self, root):
res = []
def dfs(root):
if not root:
return
# 按照 左-打印-右的方式遍历
dfs(root.left)
res.append(root.val)
dfs(root.right)
dfs(root)
return res