码迷,mamicode.com
首页 > 其他好文 > 详细

[栈] leetcode 331 Verify Preorder Serialization of a Binary Tree

时间:2019-07-30 23:30:03      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:https   遇到   占用   i++   str   com   stack   nbsp   -o   

problem:https://leetcode.com/problems/verify-preorder-serialization-of-a-binary-tree/

        这道题需要记录一个count值,表示当前树还有多少个地方可以插入新的节点(包括插入数字和插入Null)。

        如果插入的是数字节点,那么会多一个可用的位置(新的节点占用了一个,但又新增了两个);如果插入的是null,那么它只会占用一个,所以会少一个可用的位置。

        每次遇到没有可用位置的时候,意味着当前字符串非法。

        扫描到最后时,如果可用位置还有剩余,也意味着当前字符串非法。

class Solution {
public:
    bool isValidSerialization(string p) {
        //stack<char> sta;
        int count = 1;
        int num = 0;
        bool bDigit = false;
        p.push_back(,);
        for(int i = 0;i < p.size();i++)
        {
            if(p[i] == #)
            {
                bDigit = false;
                if(count == 0) return false;
                count--;
            }
            else if(p[i] >= 0 && p[i] <= 9)
            {
                bDigit = true;
                num = 10 * num + (p[i] - 0);
            }
            else if(p[i] == , && bDigit)
            {
                if(count == 0) return false;
                count++;
                num = 0;
            }
        }
        return count == 0;
    }
};

 

[栈] leetcode 331 Verify Preorder Serialization of a Binary Tree

标签:https   遇到   占用   i++   str   com   stack   nbsp   -o   

原文地址:https://www.cnblogs.com/fish1996/p/11273345.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!