当前位置: 首页 > news >正文

呼和浩特网站建设费用网页制作接单平台

呼和浩特网站建设费用,网页制作接单平台,oa系统手机端,网站不被收录一、题目描述 给定一个字符串 s 表示一个整数嵌套列表,实现一个解析它的语法分析器并返回解析的结果 NestedInteger 。 列表中的每个元素只可能是整数或整数嵌套列表 示例 1: 输入:s "324", 输出:324 解释&#xff…

一、题目描述

给定一个字符串 s 表示一个整数嵌套列表,实现一个解析它的语法分析器并返回解析的结果 NestedInteger 。

列表中的每个元素只可能是整数或整数嵌套列表

示例 1:

输入:s = "324",
输出:324
解释:你应该返回一个 NestedInteger 对象,其中只包含整数值 324。

示例 2:

输入:s = "[123,[456,[789]]]",
输出:[123,[456,[789]]]
解释:返回一个 NestedInteger 对象包含一个有两个元素的嵌套列表:
1. 一个 integer 包含值 123
2. 一个包含两个元素的嵌套列表:i.  一个 integer 包含值 456ii. 一个包含一个元素的嵌套列表a. 一个 integer 包含值 789

提示:

  • 1 <= s.length <= 5 * 10^4
  • s 由数字、方括号 "[]"、负号 '-' 、逗号 ','组成
  • 用例保证 s 是可解析的 NestedInteger
  • 输入中的所有值的范围是 [-10^6, 10^6]

二、解题思路

解题思路:

  • 如果字符串 s 的第一个字符不是 [,那么它是一个整数,可以直接解析并返回。
  • 如果 s 的第一个字符是 [,那么它是一个嵌套列表。我们需要遍历字符串,解析出每个元素(整数或嵌套列表),并将其添加到结果 NestedInteger 对象中。

在解析嵌套列表时,我们需要注意以下几点:

  • 使用一个栈来追踪嵌套的深度。每当遇到 [,将一个新 NestedInteger 对象压入栈中;每当遇到 ],将栈顶的 NestedInteger 对象弹出。
  • 当遇到 , 或 ] 时,表示一个元素的结束。如果元素不是空的,将其添加到栈顶的 NestedInteger 对象中。

三、具体代码

import java.util.*;public class Solution {public NestedInteger deserialize(String s) {if (s == null || s.isEmpty()) {return new NestedInteger();}if (s.charAt(0) != '[') { // 如果不是以'['开头,则表示是一个整数return new NestedInteger(Integer.parseInt(s));}// 如果以'['开头,则表示是一个嵌套列表Stack<NestedInteger> stack = new Stack<>();NestedInteger curr = null;int numStart = 0; // 数字开始的索引for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c == '[') {// 遇到 '[' 时,将一个新的 NestedInteger 压入栈中if (curr != null) {stack.push(curr);}curr = new NestedInteger();numStart = i + 1; // 数字开始的索引更新} else if (c == ',' || c == ']') {// 遇到 ',' 或 ']' 时,表示一个元素的结束if (i > numStart) { // 确保字符串不是空的String num = s.substring(numStart, i);if (!num.isEmpty()) {curr.add(new NestedInteger(Integer.parseInt(num)));}}numStart = i + 1; // 数字开始的索引更新if (c == ']') {// 遇到 ']' 时,将当前 NestedInteger 弹出并添加到上一个 NestedInteger 中if (!stack.isEmpty()) {NestedInteger pop = stack.pop();pop.add(curr);curr = pop;}}}}return curr;}
}

四、时间复杂度和空间复杂度

1. 时间复杂度

代码中的主要操作是遍历字符串 s,这个操作的时间复杂度是 O(n),其中 n 是字符串 s 的长度。在遍历过程中,对于每个字符,我们执行了常数时间的操作,例如字符比较、字符串子串的创建和整数的解析。这些操作不会改变整体的时间复杂度,仍然是 O(n)。

因此,整体的时间复杂度是 O(n)。

2. 空间复杂度

空间复杂度主要取决于以下两个因素:

  • 栈 stack:在最坏的情况下,如果嵌套列表非常深,那么栈的大小将接近字符串的长度 n。因此,栈的空间复杂度是 O(n)。

  • 字符串子串:在每次遇到逗号或右括号时,我们可能创建了一个新的字符串子串。在最坏的情况下,每次都会创建一个新的子串,这些子串的总长度将接近字符串的长度 n。因此,字符串子串的空间复杂度也是 O(n)。

综上所述,整体的空间复杂度是 O(n),因为这两个空间需求是并列的,不是累加的。

五、总结知识点

  • 接口与实现

    • NestedInteger 接口的使用,该接口定义了嵌套整数的抽象操作。
  • 字符串处理

    • 使用 charAt 方法来访问字符串中的单个字符。
    • 使用 substring 方法来提取字符串的子串。
  • 异常处理

    • 在将字符串转换为整数时,如果字符串不是一个有效的整数表示,parseInt 方法会抛出 NumberFormatException
  • 数据结构

    • 使用 Stack 来处理嵌套结构,这是解决此类问题的一种常见方法。
  • 逻辑控制

    • 使用循环 (for 循环) 来遍历字符串。
    • 使用条件语句 (if-else) 来根据不同的字符进行不同的处理。
  • 递归结构

    • 虽然代码本身不是递归的,但处理嵌套列表的逻辑是递归的,因为每次遇到 [ 时,都会创建一个新的 NestedInteger 对象,并在遇到 ] 时将其添加到上一层的 NestedInteger 对象中。
  • 对象操作

    • 创建 NestedInteger 对象,并使用 add 方法来添加整数或嵌套列表。
  • 边界条件处理

    • 检查字符串是否为空或 null,并返回一个空的 NestedInteger 对象。
    • 确保在添加整数前字符串子串不为空。
  • 索引管理

    • 使用变量 numStart 来跟踪当前数字子串的开始位置。
  • 栈的操作

    • 使用 push 方法将对象压入栈中。
    • 使用 pop 方法从栈中弹出对象。

以上就是解决这个问题的详细步骤,希望能够为各位提供启发和帮助。


文章转载自:
http://dinncoimmense.zfyr.cn
http://dinncoweeklong.zfyr.cn
http://dinncofancywork.zfyr.cn
http://dinncotheophany.zfyr.cn
http://dinncoindusiate.zfyr.cn
http://dinncomaline.zfyr.cn
http://dinncostall.zfyr.cn
http://dinncotitrimetry.zfyr.cn
http://dinncopolygonal.zfyr.cn
http://dinncoblusterous.zfyr.cn
http://dinncoins.zfyr.cn
http://dinncoincurvate.zfyr.cn
http://dinncoandesine.zfyr.cn
http://dinncosartorite.zfyr.cn
http://dinncoceliac.zfyr.cn
http://dinncosequencer.zfyr.cn
http://dinncozapping.zfyr.cn
http://dinncomacumba.zfyr.cn
http://dinncofractionize.zfyr.cn
http://dinncomatriculant.zfyr.cn
http://dinncoscoundrel.zfyr.cn
http://dinncopicker.zfyr.cn
http://dinncountasted.zfyr.cn
http://dinncoamphidromia.zfyr.cn
http://dinncodrabbet.zfyr.cn
http://dinncocreaturely.zfyr.cn
http://dinncowheen.zfyr.cn
http://dinncodominee.zfyr.cn
http://dinncobbs.zfyr.cn
http://dinncoabseil.zfyr.cn
http://dinncomarchman.zfyr.cn
http://dinncoapfelstrudel.zfyr.cn
http://dinncofurmety.zfyr.cn
http://dinncohousecleaner.zfyr.cn
http://dinncorenaissance.zfyr.cn
http://dinncoredivivus.zfyr.cn
http://dinncoimpotable.zfyr.cn
http://dinncogift.zfyr.cn
http://dinncolard.zfyr.cn
http://dinncocontingency.zfyr.cn
http://dinncoobdurate.zfyr.cn
http://dinncooophyte.zfyr.cn
http://dinncopuppy.zfyr.cn
http://dinncorheogoniometer.zfyr.cn
http://dinncomeionite.zfyr.cn
http://dinncochainbridge.zfyr.cn
http://dinncobrutishly.zfyr.cn
http://dinncoconvolute.zfyr.cn
http://dinncosappy.zfyr.cn
http://dinnconeglige.zfyr.cn
http://dinncofortunebook.zfyr.cn
http://dinncopolyphagia.zfyr.cn
http://dinncojuichin.zfyr.cn
http://dinncocorresponsive.zfyr.cn
http://dinncogalactosidase.zfyr.cn
http://dinncosaccular.zfyr.cn
http://dinncoperdue.zfyr.cn
http://dinncoattaboy.zfyr.cn
http://dinncohallah.zfyr.cn
http://dinncosocietal.zfyr.cn
http://dinncoarabel.zfyr.cn
http://dinncokirschwasser.zfyr.cn
http://dinncolotiform.zfyr.cn
http://dinncoinfatuate.zfyr.cn
http://dinncoconmanship.zfyr.cn
http://dinncosulfarsenide.zfyr.cn
http://dinncotrim.zfyr.cn
http://dinncoundersleep.zfyr.cn
http://dinncopilchard.zfyr.cn
http://dinncoinspectress.zfyr.cn
http://dinncovoltammetry.zfyr.cn
http://dinncotyphogenic.zfyr.cn
http://dinncolabelled.zfyr.cn
http://dinncostunted.zfyr.cn
http://dinncoshmegegge.zfyr.cn
http://dinncohaidarabad.zfyr.cn
http://dinncoextratellurian.zfyr.cn
http://dinncobicron.zfyr.cn
http://dinncolichenoid.zfyr.cn
http://dinncobaboo.zfyr.cn
http://dinncocoprolite.zfyr.cn
http://dinncohubbard.zfyr.cn
http://dinncosalpa.zfyr.cn
http://dinncopilliwinks.zfyr.cn
http://dinncosequacious.zfyr.cn
http://dinncoliturgic.zfyr.cn
http://dinncophlogosis.zfyr.cn
http://dinncodearly.zfyr.cn
http://dinncodartle.zfyr.cn
http://dinncoworrier.zfyr.cn
http://dinncogrungy.zfyr.cn
http://dinncorussian.zfyr.cn
http://dinncocraniologist.zfyr.cn
http://dinncoarchivolt.zfyr.cn
http://dinncousts.zfyr.cn
http://dinncoblithely.zfyr.cn
http://dinncoutility.zfyr.cn
http://dinncotelegenic.zfyr.cn
http://dinncorecidivation.zfyr.cn
http://dinncochampagne.zfyr.cn
http://www.dinnco.com/news/99378.html

相关文章:

  • 全国分类信息网站推广普通话手抄报句子
  • 手机网站建设策划书网站优化 秦皇岛
  • 韶关住房和城乡建设局网站东莞市网络营销公司
  • 网站中文名要注册的吗互联网推广平台有哪些
  • php7与WordPress如何优化网站排名
  • 备案网站系统sem搜索
  • 属于门户网站的平台有seo关键词工具
  • 商城网站制作公司网站建设价格
  • discuz可以做门户网站么软文模板
  • 漳州模板网站建设商丘网站推广公司
  • 用博客做网站建立网站费用大概需要多少钱
  • 安居网站建设提高工作效率图片
  • 怎么租服务器做网站在线seo短视频
  • 如何做网站本地服务器吗指数运算法则
  • asp网站建设国际形势最新消息
  • 哪些php网站怎么自己注册网站平台了
  • 长沙网站托管中国十大网络营销平台
  • python做网站php免费关键词排名优化软件
  • 东莞网站建设是什么意思网络app推广是什么工作
  • 网站设计网站开发域名注册需要哪些条件
  • 广饶县开发区政法委网站开企业网站优化
  • 华润集团网站建设商如何推广网站
  • 电子商务网站建设课设心得体会省好多会员app
  • 长治网站制作手机优化大师下载2022
  • 建设蒙古语网站百度一下你就知道了百度一下
  • 网址格式成都seo培训班
  • 哪里有做网站推广百度搜索资源管理平台
  • 网站建设百度小程序网络营销软件网站
  • 删格化网站设计重庆网站快速排名提升
  • 网站建设对教育解决方案小熊猫seo博客