题意:给出一个字符串,包含字符0-9,-,逗号,[,],计算封装后的整数

思路:用栈处理

1、如果遇到[,则入栈

2、如果遇到],并且栈中元素个数大于1,则取出栈顶元素,再将栈顶元素加入刚取现的元素

代码如下:

public class Solution {public NestedInteger deserialize(String s) {if (null == s) return null;if (s.charAt(0) != '[') {return new NestedInteger(Integer.parseInt(s));}int i = 0;Stack<NestedInteger> stack = new Stack<>();int len = s.length();while (i < len) {if (s.charAt(i) == '[') {stack.push(new NestedInteger());i++;continue;}if (s.charAt(i) == ']') {if (stack.size() > 1) {NestedInteger tmp = stack.pop();stack.peek().add(tmp);}i++;continue;}if (s.charAt(i) == ',') {i++;continue;}int sign = 1;if (s.charAt(i) == '-') {sign = -1;i++;}int sum = 0;while (i < len && s.charAt(i) >= '0' && s.charAt(i) <= '9') {sum = sum * 10 + s.charAt(i) - '0';i++;}stack.peek().add(new NestedInteger(sum * sign));}return stack.peek();}
}

LeetCode Mini Parser(栈操作)相关推荐

  1. LeetCode Simplify Path(栈操作)

    题意:给出一个文件路径,输出简化后的文件路径 如/home/ => /home /.. => / /. => / 思路:当遇到/时,就将字符串压入栈中,同时将字符串清空.在遇到..时 ...

  2. LeetCode 1441. 用栈操作构建数组

    1. 题目 给你一个目标数组 target 和一个整数 n. 每次迭代,需要从 list = {1,2,3-, n} 中依序读取一个数字. 请使用下述操作来构建目标数组 target : Push:从 ...

  3. Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言)

    Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言) ** 题目: ** 给你一个目标数组 target 和一个整数 n.每次迭代,需要从 list = {1,2 ...

  4. LeetCode 716. 最大栈(双栈 / list+map)

    文章目录 1. 题目 2. 解题 2.1 双栈解法 2.2 list+map 1. 题目 设计一个最大栈,支持 push.pop.top.peekMax 和 popMax 操作. push(x) -- ...

  5. 【Java】LeetCode 232. 用栈实现队列

    题目描述 : 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void push(int x) 将元素 x ...

  6. 第一回写的用arraylist模拟栈操作

    package hashMap; import java.util.ArrayList; import d.Student; /*** 用ArrayList模拟栈操作* @author zhujiab ...

  7. 图形上下文的栈操作(保存和恢复)

    图形上下文的栈操作 1.在对图形上下文进行操作之前先保存到栈 CGContextSaveState(图形上下文),相当于在内存中开辟一块区域用来存放图形上下文最原始的状态 2.操作图形上下文(栈操作) ...

  8. 如何仅用递归函数和栈操作逆序一个栈——你要先用stack实现,再去改成递归——需要对递归理解很深刻才能写出来...

    /**  * 如何仅用递归函数和栈操作逆序一个栈  * 题目:  * 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1.  * 将这个栈转置后,从栈顶到栈底为1,2,3,4, ...

  9. Python:如何仅用递归函数和栈操作逆序一个栈

    如何仅用递归函数和栈操作逆序一个栈 题目: 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1. 将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序, ...

最新文章

  1. 中国科学家研发新的全基因组组装算法
  2. Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量
  3. 埃拉托色尼素数筛法(转)
  4. Python+selenium 自动化-滚动的使用方法,如何滚动到元素的位置
  5. Day 16: Goose Extractor —— 好用的文章提取工具
  6. ielts writing
  7. 再谈 Java中Runnable和Thread的区别
  8. python编写正则表达式匹配单词_Python正则表达式匹配整个单词
  9. html登陆l判断,html作业登陆界面
  10. (转)学习淘淘商城第二十二课(KindEditor富文本编辑器的使用)
  11. linux shell 无法ssh,linux – BASH和/或.BASHRC在SU或SSH登录后无法正常工作,除非运行“bash”命令...
  12. 【数据结构】线性表之链式线性表
  13. paip.python错误解决2
  14. 轨道交通重要组成部分网络时钟系统(子母钟系统)
  15. 基于51单片机的排队叫号系统
  16. Smart View 11.1.2.5配置共享连接
  17. 美团笔试.最大子段和
  18. 阿里巴巴前端实习面经总结(可内推)
  19. 最科学 最舒服 【色彩搭配】 平面设计师必备
  20. Word毕业论文排版 公式居中 编号右对齐 及交叉引用(使用MathType公式编辑器实现)

热门文章

  1. 2016 - 1 - 19NSOpertation的依赖关系和监听
  2. gulp html页面路径,配置gulp前端开发环境
  3. python基础教程视频(全13集)-Python基础视频教程(600集)【传智播客精品教程】...
  4. 学python能赚什么外卖-python实现外卖信息管理系统
  5. python爬虫新手项目-Python爬虫实战之取电影天堂,,新手练手项目
  6. python中文软件-Python3.8.3下载
  7. python画简单图片-Python 画个图
  8. python装饰器-python中的装饰器常用于哪些应用场景
  9. python教学网站-自学python有什么网站
  10. python编程 入门到实践-终于懂了python编程从入门到实践