385. Mini Parser
来源:互联网 发布:医疗器械软件 编辑:程序博客网 时间:2024/05/22 04:26
Given a nested list of integers represented as a string, implement a parser to deserialize it.
Each element is either an integer, or a list – whose elements may also be integers or other lists.
Note: You may assume that the string is well-formed:
String is non-empty.
String does not contain white spaces.
String contains only digits 0-9, [, - ,, ].
Example 1:
Given s = "324",You should return a NestedInteger object which contains a single integer 324.
Example 2:
Given s = "[123,[456,[789]]]",Return a NestedInteger object containing a nested list with 2 elements:1. An integer containing value 123.2. A nested list containing two elements: i. An integer containing value 456. ii. A nested list with one element: a. An integer containing value 789.
/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its implementation * public interface NestedInteger { * // Constructor initializes an empty nested list. * public NestedInteger(); * * // Constructor initializes a single integer. * public NestedInteger(int value); * * // @return true if this NestedInteger holds a single integer, rather than a nested list. * public boolean isInteger(); * * // @return the single integer that this NestedInteger holds, if it holds a single integer * // Return null if this NestedInteger holds a nested list * public Integer getInteger(); * * // Set this NestedInteger to hold a single integer. * public void setInteger(int value); * * // Set this NestedInteger to hold a nested list and adds a nested integer to it. * public void add(NestedInteger ni); * * // @return the nested list that this NestedInteger holds, if it holds a nested list * // Return null if this NestedInteger holds a single integer * public List<NestedInteger> getList(); * } */class Solution { public NestedInteger deserialize(String s) { Stack<NestedInteger> stack = new Stack<NestedInteger>(); String temp = ""; for(char c: s.toCharArray()){ switch(c){ case '[': stack.push(new NestedInteger()); //start a new NI break; case ']': if(!temp.equals("")){ stack.peek().add(new NestedInteger(Integer.parseInt(temp))); //add NI to parent temp=""; } NestedInteger top = stack.pop(); if(!stack.empty()){ stack.peek().add(top); }else{ return top; } break; case ',': if(!temp.equals("")){ stack.peek().add(new NestedInteger(Integer.parseInt(temp)));//add NI to parent temp=""; } break; default: temp += c; } } if(!temp.equals("")){ return new NestedInteger(Integer.parseInt(temp)); } return null; }}
阅读全文
0 0
- Leetcode 385. Mini Parser
- [leetcode] 385. Mini Parser
- LeetCode:385. Mini Parser
- Leetcode 385. Mini Parser
- 385. Mini Parser
- Leetcode 385. Mini Parser
- 385. Mini Parser
- 385. Mini Parser
- Leetcode 385. Mini Parser
- 385. Mini Parser
- 385. Mini Parser
- [LeetCode]385. Mini Parser
- 385. Mini Parser**
- 385. Mini Parser
- 385. Mini Parser
- [leetcode]385. Mini Parser
- leecode-385. Mini Parser
- leetcode 385. Mini Parser
- Intercommunication System
- python基础5:文件操作、综合应用
- 网络 一一 整理cookie和session的区别
- 融混
- ajax解析json数据时,date显示为秒的形式(1511352532000)
- 385. Mini Parser
- 机器学习-python利用SVD编写推荐引擎
- 生成器,迭代器
- 杭code 计算分子量
- 重温Protues软件 8051 LCD驱动,附安装经验分享
- GetComponentsInChildren(); 使用方法(转)
- 第18章参数
- LC Technology Filerecovery 2016 Enterprise(数据恢复软件)官方中文注册版V5.5.9.7下载|数据恢复软件免费版
- 第11章