小黑被劝退了,生活学习依然继续的leetcode之旅:572. 另一棵树的子树

news2024/11/13 9:28:24

小黑代码

# 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)

在这里插入图片描述

小黑生活

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第一次做抗原,阴性

在这里插入图片描述

寒风中去运动啦

在这里插入图片描述

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

在这里插入图片描述

公司的生活

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
公司发的抗原啦
在这里插入图片描述

跟逗兄晚上约个巴西烤肉

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

去买个咖啡搓个澡

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二天抗原果然阳性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我的牛逼同事

在这里插入图片描述

在胡同里康复的两天

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

回来一测,变成弱阳了

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

遇到的奇葩招聘

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/99786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyTorch~cpp_extension

还是pytorch哈~~ 结合 Python 与 C 各自的优点&#xff0c;在 PyTorch 中加入 C / CUDA的扩展&#xff0c;详细解释C/CUDA 算子实现和调用全流程 代码来源&#xff1a;MMCV, PyTorch。 https://github.com/open-mmlab/mmcv https://github.com/pytorch/pytorch 注&#xff1a…

python 编程 函数的返回值

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.函数 1.函数的返回值介绍 2.函数的返回值定义 例子&#xff1a; 3.函…

【图像去噪】均值+中值滤波图像去噪(含PNSR)【含GUI Matlab源码 372期】

⛄一、图像去噪及滤波简介 1 图像去噪 1.1 图像噪声定义 噪声是干扰图像视觉效果的重要因素&#xff0c;图像去噪是指减少图像中噪声的过程。噪声分类有三种&#xff1a;加性噪声&#xff0c;乘性噪声和量化噪声。我们用f(x,y&#xff09;表示图像&#xff0c;g(x,y&#xff0…

面试题:进程 线程 协程

进程&#xff08;Process&#xff09;是计算机中的程序关于某数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位 通俗的讲&#xff1a;进程可以理解为我们在电脑上正在运行的一个个应用&#xff0c;例如&#xff1a;QQ&#xff0c;微信&#xff0c;LOL…

数据结构---寻找一个整数所有数字全排列的下一个数

寻找一个整数所有数字全排列的下一个数储备知识第一步第二步第三步JAVA实现给出一个正整数&#xff0c;找出这个正整数所有数字全排列的下一个数。说通俗点就是在一个整数所包含数字的全部组合中&#xff0c;找到一个大于且仅大于原数的新整数。 例子&#xff1a; 如果输入123…

【翻译】GPT-3是如何工作的

前排提示 这是我补充的内容&#xff0c;仅代表个人观点&#xff0c;和作者本人无关。 主要是意译我的补充&#xff0c;想看原文表达的拖到最底下有链接。 原文翻译 在科技界我们可以看到很多关于GPT-3的新闻。大型语言模型&#xff08;比如GPT-3&#xff09;已经展示出让我们惊…

[附源码]Python计算机毕业设计Django现代诗歌交流平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

一篇ThreadLocal走天下

尺有所短&#xff0c;寸有所长&#xff1b;不忘初心&#xff0c;方得始终。 请关注公众号&#xff1a;星河之码 在面试的时候经常会有人文ThreadLocal是啥&#xff0c;首先明确的一点是&#xff1a;虽然ThreadLocal提供了一种解决多线程环境下成员变量的问题&#xff0c;但是Th…

SSM框架学习记录-SpringMVC_day01

1.SpringMVC概述 SpringMVC功能与优点 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 SpringMVC技术与Servlet技术功能一样(对Servlet进行了封装)&#xff0c;都属于Web层开发技术 SpringMVC的主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果…

自定义注解实现参数校验

个人博客地址&#xff1a; http://xiaohe-blog.top/ 文章目录1. 为什么要进行参数校验2. 如何实现参数校验3. 注解实现参数校验4. 自定义注解实现参数校验1. 为什么要进行参数校验 在后端进行工作时&#xff0c;需要接收前端传来的数据去数据库查询&#xff0c;但是如果有些数…

目前智慧工厂建设面临的急需解决的问题有哪些?

当前国内诸多制造业企业面临着巨大的转型压力。一方面&#xff0c;劳动力成本迅速攀升、产能过剩、竞争激烈、客户个性化需求日益增长等因素&#xff0c;迫使制造企业从低成本竞争策略转向建立差异化竞争优势。具体在工厂层面&#xff0c;制造企业面临着招工难&#xff0c;以及…

去应聘测试管理职位时遇到的面试题

前言&#xff1a; 在测试管理的路上&#xff0c;少不了招聘测试管理的测试人员&#xff0c;或自己去应聘测试管理人员的时候&#xff0c;因此梳理了关于测试管理职位的面试题&#xff1a; 1、请你列举你曾经担任的测试工作职位&#xff1f; 2、你认为项目测试经理的工作职责和…

简单个人网页设计作业 静态HTML个人博客主页 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

【印刷字符识别】OCR键盘数字+字母识别【含Matlab源码 807期】

⛄一、OCR简介 1 什么是OCR技术&#xff1f; OCR英文全称是Optical Character Recognition&#xff0c;中文叫做光学字符识别。它是利用光学技术和计算机技术把印在或写在纸上的文字读取出来&#xff0c;并转换成一种计算机能够接受、人又可以理解的格式。文字识别是计算机视觉…

Java项目:SSM服装出租服装店租赁服装管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目为后台管理系统&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登录,用户管理,公告管理,服装类型管理,服装信息管理,客户信息管…

计算机毕设Python+Vue新生报到管理(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Java项目:SSM在线甜品商城平台

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 管理员角色包含以下功能&#xff1a; 管理员登录,套餐管理,甜品管理,预定管理等功能。 用户角色包含以下功能&#xff1a; 用户登录与注册,查看…

Activiti7-流程变量

流程变量 流程变量的作用域 设置流程定义的key为myEvection2 使用流程变量 定义好流程变量后&#xff0c;就可以在整个流程定义中使用这些流程变量了。例如可以在某些任务属性如 assignee上使用${assignee}&#xff0c;或者在某些连线上使用${day<3}。 Activiti中可以使用…

C语言初阶_初识C语言(2)

我尝试用这博客记录下我所热爱 ​我只不过是个无名小辈 ​无休止地更新 ​在名利中苦苦挣扎 ​世事变幻莫测 ​就算每一次早早被淘汰 ​在失败边缘挣扎 我的数据结构与算法系列开始了&#xff0c;有一定C语言基础的同学可以去学习&#xff01; 数据结构与算法_时间复杂度 有…

jmeter下载及安装配置

目录&#xff1a;导读 前言 jmeter环境 jmeter环境变量配置如下&#xff1a; &#xff08;1&#xff09;新增JMETER_HOME变量 &#xff08;2&#xff09;配置Path环境变量&#xff1a; &#xff08;3&#xff09;配置CLASSPATH变量&#xff0c;加上&#xff1a; &#xf…