实现一个mini parser, 输入是以下格式的string:"324" or"[123,456,[788,799,833],[[]],10,[]]"
要求输出:324 or [123,456,[788,799,833],[[]],10,[]].
也就是将字符串转换成对应的格式的数据.
输入一个数组的字符串, 要返回一个数组, 里面每一个元素是要么一个整数, 要么是一个数组.
但是注意数组可以多层嵌套.
Solution:
public class NestedIntList { private int value; private List<NestedIntList> intList; private boolean isNumber; public NestedIntList(int v) { this.value = v; this.isNumber = true; } public NestedIntList() { this.intList = new ArrayList<>(); this.isNumber = false; } public void add(NestedIntList l) { intList.add(l); } public static NestedIntList fromString(String s) { if(!s.startsWith("[")) { return new NestedIntList(Integer.parseInt(s)); } NestedIntList result = null; Stack<NestedIntList> stack = new Stack<>(); int i = 0, left = 1; while(i < s.length()) { char c = s.charAt(i); if(c == '[') { NestedIntList num = new NestedIntList(); if(!stack.isEmpty()) { stack.peek().add(num); } stack.push(num); left = i+1; } else if(c == ',' || c == ']') { if(left != i) { int v = Integer.parseInt(s.substring(left, i)); NestedIntList num = new NestedIntList(v); stack.peek().add(num); } left = i+1; if(c == ']') result = stack.pop(); } i++; } return result; } public String toString() { if(isNumber) { return ""+value; } else { return intList.toString(); } } public static void main(String[] args) { NestedIntList list = NestedIntList.fromString("[123,456,[788,799,833],[[]],10,[]]"); System.out.println(list); } }
相关推荐
纽约Airbnb数据挖掘-new-york-city-airbnb-open-data.zip纽约Airbnb数据挖掘-new-york-city-airbnb-open-data.zip纽约Airbnb数据挖掘-new-york-city-airbnb-open-data.zip纽约Airbnb数据挖掘-new-york-city-airbnb-...
04纽约Airbnb数据挖掘-new-york-city-airbnb-open-data.zip
airbnb-data-science-master.rar
前端开源库-eslint-config-airbnb-typescripteslint配置airbnb typescript,airbnb的eslint配置,支持typescript
airbnb-clone, 使用 Rails Trieu的教程克隆 Airbnb 使用 Rails 克隆 Airbnb Trieu教程访问 https://code4startup.com/projects/airalien-clone-airbnb-with-ruby-on-rails-bootstrap-jque
Vue-Airbnb风格的日期选择器 这是流行的AirBnb日期选择器的VueJs版本。 支持范围选择,日期禁用,自定义配置以及更多其他功能。 真正的轻量级和良好的浏览器支持! 文献资料 浏览器支持 此日期选择器已通过以下...
eslint-config-airbnb-typescript-prettier 具有TypeScript和Prettier支持的Airbnb的ESLint配置。如何使用安装typescript , eslint和prettier , eslint-config-airbnb-typescript-prettier ,并把它放到你的....
eslint-config-airbnb-typescript 支持TypeScript的Airbnb的ESLint配置 设置 1)安装 npm install eslint-config-airbnb-typescript --save-dev 2)安装ESLint插件 此配置使用的ESLint插件也必须安装在您的项目中。...
Airbnb巴黎-DataScience :hotel: | :airplane: | Airbnb官方数据库| :airplane: | :hotel:
tslint-config-airbnb, Airbnb JavaScript风格的TSLint配置 TSLint配置 Airbnb 一个用于Airbnb的TSLint配置安装npm install tslint-config-airbnb --save用法在 tslint.json 中:{ "ext
AirBnB克隆-RESTful API。 永远不会忘记测试使用cURL进行调试引入方式:0x10。 Python-网络#0。 Python包引入方式为:0x00。 AirBnB克隆-控制台,0x02。 AirBnB克隆-MySQL。 JavaScript程式设计AirBnB克隆引入方式...
空气React This is a React warmup session on how to implement search with GoogleMapReact. Airbnb is the use case 前端用户界面 学分 首席技术官SébastienSaunier
20210124-天风证券-Airbnb-ABNB.US-休闲服务行业:广阔空间高速发展,共享住宿全球领导者~爱彼迎.pdf
eslint-config-airbnb-ts 具有TypeScript支持的Airbnb ESLint配置的Monorepo:附加文件 学分由马特·特恩布尔撰写( / ) 由Anders Nilsson( nilssonanders79@gmail.com )维护非常感谢所有贡献者! 执照开源许可为...
显示纽约市Airbnb公寓的附近信息,包括到地铁站的距离,安全地点,附近的餐馆和酒吧… 显示纽约市Airbnb公寓的附近信息,包括到地铁站的距离,安全性,附近的餐厅和酒吧,推荐便宜的和附近的公寓
Airbnb API 使用Django REST Framework和Graphene GraphQL的Airbnb克隆的REST和GraphQL APIAPI动作 列出房间 过滤室 按坐标搜索 JWT身份验证 登录(JWT) 创建帐号 看房间 将房间添加到收藏夹 见收藏夹 查看个人资料...
AirBnB-NYC-2019-可视化-项目一个可视化项目,以了解纽约市的AirBnB市场
Relationship-Between-Airbnb-Hosuing-Price-and-Crime-in-NYC
Airbnb UI套件受Airbnbs设计启发的用户界面套件发展 cd packges/airbnb-uinpm start故事书 cd packages/airbnb-uiyarn run storybook文件yarn start