• 385. Mini Parser


    括号题一般都是stack..

    一开始想的是存入STACK的是SRING,然后POP出括号在构建新的NestedInteger放到另一个里面,但是操作起来费时费力。

    后来猛然发现其实可以直接吧NestedInteger作为Object放入Stack里。

    这种直接往堆顶元素里放的办法一定要注意。

    然后就是edge cases多得一逼,一定要仔细,看了一刷的答案做的,有点后悔。其实有时候觉得麻烦的时候,基本就是思路错了,这个题也是看到一半觉得麻烦,然后发现果然思路错了。

    public class Solution 
    {
        public NestedInteger deserialize(String s) 
        {
            if(s.length() == 0) return new NestedInteger();
            
            Stack<NestedInteger> stk  = new Stack<NestedInteger>();
            int tempIndex = 0;
            if(!s.contains("[")) return new NestedInteger(Integer.valueOf(s));
            
            for(int i = 0; i < s.length();i++)
            {
                char tempCh = s.charAt(i);
                if(tempCh == '[')
                {
                    stk.push(new NestedInteger());
                    tempIndex = i + 1;
                }
                else if(tempCh == ',')
                {
                    if( i != tempIndex)
                    {
                        int tempInt = Integer.valueOf(s.substring(tempIndex,i));
                        stk.peek().add(new NestedInteger(tempInt));
                    }
                    
                    
                    tempIndex = i + 1;
                    
                    
                }
                else if(tempCh == ']')
                {
                    if( i != tempIndex)
                    {
                        int tempInt = Integer.valueOf(s.substring(tempIndex,i));
                        stk.peek().add(new NestedInteger(tempInt));
                    }
                    
                    tempIndex = i + 1;
                    
                    NestedInteger tempOB = stk.pop();
                    if(!stk.isEmpty()) stk.peek().add(tempOB);
                    else stk.push(tempOB);
                    
                    
                    
                }
                // numbers
                else
                {
                    
                }
    
                
            }
            
            
            return stk.pop();
            
        }
    }
    

    P.S. 有道云笔记各种崩溃,今天崩溃100次了,好像跟ALT有关。

  • 相关阅读:
    可重入的自旋锁
    自旋锁浅析
    hibernate规避SQL注入实例
    关于2B的转义问题
    java指定文件编码格式
    win10下启动zkui
    【转】角落的开发工具集之Vs(Visual Studio)2017插件推荐
    《LINQ技术详解C#》-4.延迟操作符(第2部分 LINQ到对象)
    《LINQ技术详解C#》-2.查询表达式翻译为标准查询操作符
    Code alignment 代码对齐改进(VS2017)
  • 原文地址:https://www.cnblogs.com/reboot329/p/5875868.html
Copyright © 2020-2023  润新知