zoukankan      html  css  js  c++  java
  • 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有关。

  • 相关阅读:
    移动端通过js来用rem控制字体大小的用法
    移动端字体大小自动缩放css样式控制
    meta
    兔子生兔子问题
    CSS hack
    为对象添加一个新的方法
    js实现菜单切换
    Node.js基础学习(第三幕)
    Node.js基础学习(第二幕)
    C#通用公共类库ZXNetStandardDepot.Common
  • 原文地址:https://www.cnblogs.com/reboot329/p/5875868.html
Copyright © 2011-2022 走看看