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有关。

  • 相关阅读:
    USB 之传输编码格式 NRZI 介绍
    ubuntu 14.04 安装中文输入法
    uart 超声波传感器数据读取
    Embarcadero Delphi 7 Lite 7.0.4.453 中文版
    Delphi连接Oracle控件ODAC的安装及使用
    ODAC 安裝 (11.2.4)
    Sql中CHARINDEX用法
    DELPHI 数据库控件心得
    delphi uniDac
    Delphi连接Oracle控件ODAC的安装及使用
  • 原文地址:https://www.cnblogs.com/reboot329/p/5875868.html
Copyright © 2011-2022 走看看