每日一题 1457. 二叉树中的伪回文路径(中等,DFS)

news/2024/7/20 22:49:54 标签: 深度优先, python, 算法

在这里插入图片描述
一句话,深度搜索所有路径,判断路径是否伪回文

python"># 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 pseudoPalindromicPaths (self, root: Optional[TreeNode]) -> int:
        ans = 0
        def find(node, path, deep):
            nonlocal ans
            if node is None:
                return
            path[node.val] = 1 if path[node.val] == 0 else 0
            if node.left is None and node.right is None:
                c = 0
                for i in path:
                    if i == 1:
                        c += 1
                if deep % 2 == 0:
                    ans += 1 if c == 0 else 0
                else:
                    ans += 1 if c == 1 else 0
            find(node.left, path, deep + 1)
            find(node.right, path, deep + 1)
            path[node.val] = 0 if path[node.val] == 1 else 1
        
        find(root, [0] * 10, 1)
        return ans

http://www.niftyadmin.cn/n/5213161.html

相关文章

DB2中实现数据字段的拼接(LISTAGG() 与 xml2clob、xmlagg)

DB2中实现数据字段拼接(LISTAGG 与 xml2clob、xmlagg) 1. 使用函数LISTAGG()1.1 同oracle实现方式1.2 DB2中使用LISTAGG()1.2.1 关于DB2版本1.2.2 数据准备1.2.3 代码实现 2 解决DB2中关于 LISTAGG() 超长问题2.1 使用xmlagg xmlelement2.2 将xml标签去…

2022年06月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 点击绿旗,舞台上的角色会说出? A:2022年5月1日 B:1日5月2022年 C:2022年05月01日 D:05月01日2022年 答案:C 输出为:2022年05月01日。 第2题 观察规律,请问橙色方块应填…

kolla-ansible 部署OpenStack云计算平台

目录 一、环境 二、安装及部署 三、测试 一、环境 官方文档:https://docs.openstack.org/kolla-ansible/yoga/user/quickstart.html rhel8.6 网络设置: 修改网卡名称 网络IP: 主机名: 网络时间协议 配置软件仓库 vim docke…

android 调用 c++builder

CBuilder使用FireMonkey来开发Android应用程序&#xff0c;并且将应用程序编译为.so文件&#xff0c;以下是一个简单的示例代码&#xff0c;可以调用该文件来显示一个简单的窗口&#xff1a; c #include <FMX.Forms.hpp> #include <FMX.Controls.hpp> class TForm…

Python与设计模式--代理模式

5-Python与设计模式–代理模式 一、网络服务器配置白名单 代理模式是一种使用频率非常高的模式&#xff0c;在多个著名的开源软件和当前多个著名的互联网产品后 台程序中都有所应用。下面我们用一个抽象化的简单例子&#xff0c;来说明代理模式。 首先&#xff0c;构造一个网络…

Vue解析器

解析器本质上是一个状态机。但我们也曾提到&#xff0c;正则表达式其实也是一个状态机。因此在编写 parser 的时候&#xff0c;利用正则表达式能够让我们少写不少代码。本章我们将更多地利用正则表达式来实现 HTML 解析器。另外&#xff0c;一个完善的 HTML 解析器远比想象的要…

Android Studio记录一个错误:Execution failed for task ‘:app:lintVitalRelease‘.

Android出现Execution failed for task :app:lintVitalRelease.> Lint found fatal errors while assembling a release target. Execution failed for task :app:lintVitalRelease解决方法 Execution failed for task ‘:app:lintVitalRelease’ build project 可以正常执…

Liunx Ubuntu Server 安装配置 Docker

1. 安装Docker 1.1 更新软件包列表 sudo apt update1.2 添加Docker存储库 sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-a…