括号题一般都是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);}// numberselse{}}return stk.pop();}
}

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

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

385. Mini Parser相关推荐

  1. leetcode 385. Mini Parser | 385. 迷你语法分析器(Java)

    题目 https://leetcode.com/problems/mini-parser/ 题解 只要有耐心分析清楚每一种状态就可以啦. /*** // This is the interface t ...

  2. 实现迷你解析器把字符串解析成NestInteger类 Mini Parser

    为什么80%的码农都做不了架构师?>>>    问题: Given a nested list of integers represented as a string, implem ...

  3. LeetCode Mini Parser(栈操作)

    题意:给出一个字符串,包含字符0-9,-,逗号,[,],计算封装后的整数 思路:用栈处理 1.如果遇到[,则入栈 2.如果遇到],并且栈中元素个数大于1,则取出栈顶元素,再将栈顶元素加入刚取现的元素 ...

  4. 继续过中等难度.0309

      .   8  String to Integer (atoi)    13.9% Medium   . 151 Reverse Words in a String      15.7% Mediu ...

  5. Leetcode重点250题

    LeetCode重点250题 这个重点题目是把LeetCode前400题进行精简.精简方法如下: 删除不常考,面试低频出现题目 删除重复代码题目(例:链表反转206题,代码在234题出现过) 删除过于 ...

  6. leetcode算法练习 JavaScript实现

    leetcode 表格内容由spider.js从leetcode-cn.com爬取. 已做题目答案也从leetcode-cn.com中爬取并生成文件. 解题进度:已解决 140/637 - 简单 94 ...

  7. [LeetCode]-Python刷题第三周(栈和队列)

    20. Valid Parentheses 合法括号(Easy) Given a string containing just the characters '(', ')', '{', '}', ' ...

  8. LeetCode All in One 题目讲解汇总(持续更新中...)

    原文地址:https://www.cnblogs.com/grandyang/p/4606334.html 终于将LeetCode的大部分题刷完了,真是漫长的第一遍啊,估计很多题都忘的差不多了,这次开 ...

  9. 【LeetCode】字符串 string(共112题)

    [3]Longest Substring Without Repeating Characters (2019年1月22日,复习) [5]Longest Palindromic Substring ( ...

最新文章

  1. linux shell写服务,Linux shell编写系统服务脚本
  2. 信息北航身份认证_信息北航丨北航第一服务平台,你值得关注!
  3. (NO.00001)iOS游戏SpeedBoy Lite成形记(十)
  4. 五、Mysql中JSON类型
  5. Oracle Telnet 1521 失败
  6. Mac苹果安装Win7时鼠标和键盘没有响应
  7. 小程序开发小游戏注意事项
  8. AD5933的直流偏置和量程自动切换问题
  9. Jupyter notebook 运行时出现 “服务似乎挂掉了,但是会立刻重启的”
  10. java batter_android电池管理系统从上层的java到底层驱动的调用(转载)
  11. 客户消费积分管理系统编写笔记
  12. element-ui问题集锦
  13. 安卓市场的“安全评估报告”攻略
  14. 高老师的架构设计_隽语集(DD_1951)
  15. Linux文件锁(Filelock)是什么,怎么用?
  16. 山东科技大学计算机学院奖学金,山东科技大学:一份特殊“奖学金”
  17. Postman之CSV或JOSN文件实现数据驱动(参数化)
  18. excel实现join功能
  19. 【Java 并发编程】【05】线程安全问题与线程同步
  20. 啦啦~~~记录江苏省C等级考试相关题目

热门文章

  1. Android开发指南中文版(十三)User Interface-Notifications
  2. idea vue项目通过@跳转 vue设置完@映射路径之后在IDEA中无法跳转
  3. Flutter 微信分享功能实现
  4. 数据结构 链式哈希表(Hash Table)的接口定义与实现分析(完整代码)
  5. New-Python-数据类型、字符编码、文件处理
  6. Python中表达式和语句及for、while循环练习
  7. 常见数据结构与算法整理总结
  8. 原生js浏览器兼容性问题
  9. HDU5765 Bonds 最小割极
  10. js中的DOM操作汇总