LeetCode Mini Parser(栈操作)
题意:给出一个字符串,包含字符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(栈操作)相关推荐
- LeetCode Simplify Path(栈操作)
题意:给出一个文件路径,输出简化后的文件路径 如/home/ => /home /.. => / /. => / 思路:当遇到/时,就将字符串压入栈中,同时将字符串清空.在遇到..时 ...
- LeetCode 1441. 用栈操作构建数组
1. 题目 给你一个目标数组 target 和一个整数 n. 每次迭代,需要从 list = {1,2,3-, n} 中依序读取一个数字. 请使用下述操作来构建目标数组 target : Push:从 ...
- Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言)
Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言) ** 题目: ** 给你一个目标数组 target 和一个整数 n.每次迭代,需要从 list = {1,2 ...
- LeetCode 716. 最大栈(双栈 / list+map)
文章目录 1. 题目 2. 解题 2.1 双栈解法 2.2 list+map 1. 题目 设计一个最大栈,支持 push.pop.top.peekMax 和 popMax 操作. push(x) -- ...
- 【Java】LeetCode 232. 用栈实现队列
题目描述 : 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void push(int x) 将元素 x ...
- 第一回写的用arraylist模拟栈操作
package hashMap; import java.util.ArrayList; import d.Student; /*** 用ArrayList模拟栈操作* @author zhujiab ...
- 图形上下文的栈操作(保存和恢复)
图形上下文的栈操作 1.在对图形上下文进行操作之前先保存到栈 CGContextSaveState(图形上下文),相当于在内存中开辟一块区域用来存放图形上下文最原始的状态 2.操作图形上下文(栈操作) ...
- 如何仅用递归函数和栈操作逆序一个栈——你要先用stack实现,再去改成递归——需要对递归理解很深刻才能写出来...
/** * 如何仅用递归函数和栈操作逆序一个栈 * 题目: * 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1. * 将这个栈转置后,从栈顶到栈底为1,2,3,4, ...
- Python:如何仅用递归函数和栈操作逆序一个栈
如何仅用递归函数和栈操作逆序一个栈 题目: 一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1. 将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序, ...
最新文章
- 中国科学家研发新的全基因组组装算法
- Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量
- 埃拉托色尼素数筛法(转)
- Python+selenium 自动化-滚动的使用方法,如何滚动到元素的位置
- Day 16: Goose Extractor —— 好用的文章提取工具
- ielts writing
- 再谈 Java中Runnable和Thread的区别
- python编写正则表达式匹配单词_Python正则表达式匹配整个单词
- html登陆l判断,html作业登陆界面
- (转)学习淘淘商城第二十二课(KindEditor富文本编辑器的使用)
- linux shell 无法ssh,linux – BASH和/或.BASHRC在SU或SSH登录后无法正常工作,除非运行“bash”命令...
- 【数据结构】线性表之链式线性表
- paip.python错误解决2
- 轨道交通重要组成部分网络时钟系统(子母钟系统)
- 基于51单片机的排队叫号系统
- Smart View 11.1.2.5配置共享连接
- 美团笔试.最大子段和
- 阿里巴巴前端实习面经总结(可内推)
- 最科学 最舒服 【色彩搭配】 平面设计师必备
- Word毕业论文排版 公式居中 编号右对齐 及交叉引用(使用MathType公式编辑器实现)
热门文章
- 2016 - 1 - 19NSOpertation的依赖关系和监听
- gulp html页面路径,配置gulp前端开发环境
- python基础教程视频(全13集)-Python基础视频教程(600集)【传智播客精品教程】...
- 学python能赚什么外卖-python实现外卖信息管理系统
- python爬虫新手项目-Python爬虫实战之取电影天堂,,新手练手项目
- python中文软件-Python3.8.3下载
- python画简单图片-Python 画个图
- python装饰器-python中的装饰器常用于哪些应用场景
- python教学网站-自学python有什么网站
- python编程 入门到实践-终于懂了python编程从入门到实践