博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
385. Mini Parser
阅读量:4648 次
发布时间:2019-06-09

本文共 1906 字,大约阅读时间需要 6 分钟。

括号题一般都是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
stk = new Stack
(); 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有关。

转载于:https://www.cnblogs.com/reboot329/p/5875868.html

你可能感兴趣的文章
AVL树、splay树(伸展树)和红黑树比较
查看>>
多媒体音量条显示异常跳动
查看>>
运算符及题目(2017.1.8)
查看>>
React接入Sentry.js
查看>>
ssh自动分发密匙脚本样板
查看>>
转 小辉_Ray CORS(跨域资源共享)
查看>>
Linux安装postgresql
查看>>
MyBatis启动:MapperStatement创建
查看>>
【 全干货 】5 分钟带你看懂 Docker !
查看>>
[转]优化Flash性能
查看>>
popStar手机游戏机机对战程序
查看>>
Java Web项目结构
查看>>
lambda表达式树
查看>>
二次注入原理及防御
查看>>
会话记住已登录功能
查看>>
Linux内核分析——可执行程序的装载
查看>>
第一阶段冲刺3
查看>>
父类引用指向子类对象
查看>>
网页如何实现下载功能
查看>>
IT男专用表白程序
查看>>