首页 > 代码库 > mini-parser
mini-parser
https://leetcode.com/problems/mini-parser//** * // 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(); * } */public class Solution { public NestedInteger deserialize(String s) { if (s.equals("")) { return new NestedInteger(); } if (s.startsWith("[")) { return impl(s.substring(1, s.length()-1)); } return new NestedInteger(Integer.parseInt(s)); } private NestedInteger impl(String s) { if (s.equals("")) { return new NestedInteger(); } char [] chList = s.toCharArray(); int wrap = 0; int left = 0; NestedInteger ret = new NestedInteger(); for (int i = 0; i < chList.length; i++) { if (chList[i] == ‘[‘) { wrap++; } else if (chList[i] == ‘]‘) { wrap--; } else if (chList[i] == ‘,‘ && wrap == 0) { ret.add(deserialize(s.substring(left, i))); left = i + 1; } } ret.add(deserialize(s.substring(left, chList.length))); return ret; }}
mini-parser
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。