当前位置: 首页 > article >正文

每日一题 331. 验证二叉树的前序序列化

331. 验证二叉树的前序序列化

可以使用来解决


struct Node{
    char num;
    int subTreeCnt;
};

class Solution {
public:
    bool isValidSerialization(string preorder) {

        vector<Node> stk;
        int idx = 0;
        if(preorder == "#")
        {
            return true;
        }
        stringstream ss(preorder);
        string s;
        while(getline(ss,s,','))
        {
            
            char cur = s[0];
            if(cur == '#')
            {
                if(stk.empty() || stk.back().subTreeCnt>=2)
                {   

                    return false;
                }
                while(!stk.empty() && stk.back().subTreeCnt == 1)
                {
                    stk.pop_back();
                }
                if(stk.empty() ){

                    return ss.eof() ? true:false;
                }
                stk.back().subTreeCnt++;
            }else{
                Node nd = {cur,0};
                stk.push_back(nd);
            }
            ++idx;
            
        }

        while(!stk.empty() && stk.back().subTreeCnt == 2)
        {
            stk.pop_back();
        }
        return stk.empty();
    }
};

使用槽位号的想法更简单

class Solution {
public:
    bool isValidSerialization(string preorder) {
        stringstream ss(preorder);
        string s;
        int idx = 1;
        while(getline(ss,s,','))
        {
            --idx;
            if(idx < 0 )
            {
                return false;
            }
            if(s != "#")
            {
                idx += 2;
            }
        }
        return idx == 0;
    }
};

http://www.kler.cn/a/442173.html

相关文章:

  • 用公网服务器实现内网穿透
  • NLP自然语言处理分词模块HanLP
  • 电脑风扇声音大怎么办? 原因及解决方法
  • 深入了解卷积神经网络(CNN):图像处理与深度学习的革命性技术
  • 企业邮箱iRedMail搭建
  • Android-V lmkd 中的那些属性值
  • Excel中如何消除“长短款”
  • 【服务器】服务器进程运行不受本地终端影响的方法总结
  • 【AIGC安全】CCF-CV企业交流会直播回顾:探寻AI安全治理,共筑可信AI未来
  • MySQL 实战:小型项目中的数据库应用(一)
  • springcloud-gateway获取应用响应信息乱码
  • CSS系列(14)--后处理器详解
  • 数据仓库工具箱—读书笔记02(Kimball维度建模技术概述02、事实表技术基础)
  • OpenGL —— 2.6.1、绘制一个正方体并贴图渲染颜色(附源码,glfw+glad)
  • 【VSCode插件开发】集成 React 18(十)
  • MySQL基础 -----MySQL数据类型
  • fiddler设置抓取https,还抓取不到https如何解决?
  • Scala的泛型界限
  • 【漏洞分析】DDOS攻防分析(四)——TCP篇
  • 用机器学习和深度学习分别实现鸢尾花分类
  • H3C MPLS跨域optionA
  • 并发测试Java(spring boot) VS C#(ASP.NET CORE)
  • SpringAI人工智能开发框架002---SpringAI项目搭建_依赖导入_maven仓库引入_接口中转
  • 力扣-图论-16【算法学习day.66】
  • 调用钉钉接口发送消息
  • Dcoker Redis哨兵模式集群介绍与搭建 故障转移 分布式 Java客户端连接