小黑代码
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isSubtree(self, root: Optional[TreeNode], subRoot: Optional[TreeNode]) -> bool:
self.match_sub = False
# 匹配函数
def match(node,sub_node):
# 全部为空
if not (node or sub_node):
return True
# 有一个为空
if (node==None) ^ (sub_node==None):
return False
# val不相等
if node.val != sub_node.val:
return False
match_left = match(node.left,sub_node.left)
match_right = match(node.right,sub_node.right)
return match_left and match_right
def dfs(node):
if (not node) or self.match_sub:
return
if match(node,subRoot):
self.match_sub = True
dfs(node.left)
dfs(node.right)
dfs(root)
return self.match_sub

KMP匹配法
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isSubtree(self, root: Optional[TreeNode], subRoot: Optional[TreeNode]) -> bool:
# 树和子树的特殊先序遍历
pre_root = []
pre_subRoot = []
# 获取先序遍历
def dfs(node, arr):
if not node:
arr.append('#')
return
arr.append(node.val)
dfs(node.left, arr)
dfs(node.right, arr)
# kmp匹配算法
def kmp(patt, string):
# 生成next数组
i = 1
next_ = [0]
prefix_len = 0
while i < len(patt):
if patt[i]==patt[prefix_len]:
i += 1
prefix_len += 1
next_.append(prefix_len)
else:
if not prefix_len:
next_.append(0)
i += 1
else:
prefix_len = next_[prefix_len-1]
# 开始匹配
i = 0
j = 0
while i < len(string):
if string[i]==patt[j]:
i += 1
j += 1
else:
if not j:
i += 1
else:
j = next_[j-1]
if j == len(patt):
return True
return False
# 执行函数,获取先序遍历
dfs(root, pre_root)
dfs(subRoot, pre_subRoot)
return kmp(pre_subRoot, pre_root)

小黑生活
还是收到了奇安信的感谢信,骂声一片





第一次做抗原,阴性

寒风中去运动啦

自己洗的衣服,晾在暖气上

公司的生活



去吃黑色星期四,竟然不让堂食




小黑不知不觉最后一次去公司



公司发的抗原啦

跟逗兄晚上约个巴西烤肉









去买个咖啡搓个澡


去拔了罐,经过可怕的发热门诊



第二天抗原果然阳性




我的牛逼同事

在胡同里康复的两天




回来一测,变成弱阳了

按摩享受生活,得知自己被劝退


遇到的奇葩招聘



电影卡里还剩那么一点点,赶紧去看






小黑宿舍沦陷了,去门口飞速吃了个串,但是吃不出味道



约了好久不见的在新华社实习的黑山羊学姐出去转转,聊了聊天,感觉心中被带来了些阳光



看到了之前学钢琴的地方关门了,心里有些说不出的滋味

看着小黑驴发的这条朋友圈,自己也感到十分心痛,默默祈祷着,希望大家都能够相安无事。小黑这两个月逐渐开始感觉到了生活的残酷,家里人能够健健康康真的是一种奢侈,但愿人长久,大家都能快快乐乐的。不辜负在身旁的每一天~






![[附源码]Python计算机毕业设计Django现代诗歌交流平台](https://img-blog.csdnimg.cn/bbbea0ecfcb346059ae433745bf51217.png)











