实现一个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-...
`eslint-config-airbnb-typescript`则是`ESLint`的一个配置集,它扩展了著名的`Airbnb`编码风格指南,特别针对`TypeScript`进行了优化。 `Airbnb`是一家知名的创业公司,它的开源代码风格指南在前端社区广泛使用。`...
本项目聚焦于"04纽约Airbnb数据挖掘-new-york-city-airbnb-open-data.zip",这是一个公开的数据集,其中包含了纽约市Airbnb(一种在线短租平台)在2019年的详细信息,为研究者和分析师提供了丰富的素材进行深入的...
eslint-config-airbnb-typescript 支持TypeScript的Airbnb的ESLint配置 设置 1)安装 npm install eslint-config-airbnb-typescript --save-dev 2)安装ESLint插件 此配置使用的ESLint插件也必须安装在您的项目中。...
"airbnb-data-science-master"项目为我们揭示了Airbnb如何运用数据科学优化业务、提升用户体验。该项目包含了丰富的源码,让我们有机会深入了解数据科学在实际业务中的应用。 1. 数据科学流程概述 Airbnbs的数据...
extends: ['airbnb-base', 'plugin:vue/recommended'], // 使用 airbnb 配置并添加 Vue.js 的推荐规则 }; ``` `mysticatea-vue-eslint-parser-9d32333` 这个文件可能是 `vue-eslint-parser` 的一个特定版本或分支...
在本项目中,我们面临的是一个典型的数据挖掘挑战——预测Airbnb新用户的民宿预定行为。Kaggle竞赛提供了丰富的数据集来帮助参赛者构建模型,理解用户行为,并预测未来的预定趋势。以下是各文件的主要内容及可能涉及...
airbnb-clone, 使用 Rails Trieu的教程克隆 Airbnb 使用 Rails 克隆 Airbnb Trieu教程访问 https://code4startup.com/projects/airalien-clone-airbnb-with-ruby-on-rails-bootstrap-jque
Airbnb-杜奕凡-Airbnb实时流计算的架构与演进
eslint-config-airbnb-typescript-prettier 具有TypeScript和Prettier支持的Airbnb的ESLint配置。如何使用安装typescript , eslint和prettier , eslint-config-airbnb-typescript-prettier ,并把它放到你的....
Vue-Airbnb风格的日期选择器 这是流行的AirBnb日期选择器的VueJs版本。 支持范围选择,日期禁用,自定义配置以及更多其他功能。 真正的轻量级和良好的浏览器支持! 文献资料 浏览器支持 此日期选择器已通过以下...
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
标题 "Airbnb-Paris---DataScience:Airbnb官方数据" 提供了我们即将探讨的主题,即关于Airbnb在巴黎的数据科学分析。Airbnb是全球知名的在线住宿预订平台,其业务覆盖全球众多城市,包括巴黎。这个项目可能涉及利用...
【AirBnB_clone:0x00。 AirBnB克隆-控制台】 AirBnB_clone项目是一个基于Python编程语言的实践项目,旨在模仿著名短租平台Airbnb的功能,提供一个基本的控制台界面供用户进行交互。这个项目可以帮助开发者提升在...
【文件名称列表】"Airbnb-price-prediction-master"表明压缩包包含的是项目的主分支,通常在Git版本控制系统中,master分支代表了项目的主线。这个目录很可能包含了项目的源代码、数据集、README文件(描述项目目的...
eslint-config-airbnb-ts 具有TypeScript支持的Airbnb ESLint配置的Monorepo:附加文件 学分由马特·特恩布尔撰写( / ) 由Anders Nilsson( nilssonanders79@gmail.com )维护非常感谢所有贡献者! 执照开源许可为...
【标题】"AirBnb-ionic-app"是一个基于Ionic框架构建的应用程序,它可能是模仿知名的住宿分享平台Airbnb的一个示例项目。这个项目利用了TypeScript语言的优势,为移动设备提供了一个跨平台的用户界面。 【描述】...