LeetCode【394】字符串解码

news2024/9/24 3:29:48

题目:
在这里插入图片描述

思路:
参考:https://blog.csdn.net/xushiyu1996818/article/details/107973300

代码:

 public String decodeString(String s){
  Deque<Character> stack = new ArrayDeque<>();
  for(char c :s.toCharArray()){
    if(c != ']'){
      stack.push(c);   //把除了']'的所有都押入到栈中
    }else{
      StringBuilder sb = new StringBuilder();
      while(!stack.isEmpty()&& Character.isLetter(stack.peek())){
        sb.insert(0,stack.pop());
      }
      String sub = sb.toString(); // 获得 [] 内的字符串
      stack.pop(); // 去除 [ 括号      // 注意,这里容易出错,要记得pop
      
      // step2 :获取倍数数字
      sb = new StringBuilder();
 			while(!stack.isEmpty() && Character.isDigit(stack.peek())){
        sb.insert(0,stack.pop());
      }     
      int count = Integer.valueOf(sb.toString()); // 倍数
      
      while(count > 0){                          // 注意这里直接塞回去就好,不用拼成完成的ababab再塞回去
        for(char ch:sub.toCharArray()){
          stack.push(ch);
        }
      	count--;
      }
    }
  }
  // 把栈里面所有的字母取出来
  StringBuilder retv = new StringBuilder();      // 注意返回结果,将所有括号处理完,就可以从栈里返回了
  while(!stack.isEmpty()){
    retv.insert(0,stack.pop());
  }
  return retv.toString();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1079636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第一章:Android开发技能入门指南

Android 从入门到出门第一章&#xff1a;Android开发技能入门指南第二章&#xff1a;使用声明式UI创建屏幕并探索组合原则第三章&#xff1a;使用Hilt处理Jetpack Compose UI状态第四章&#xff1a;现代Android开发中的导航第五章&#xff1a;使用DataStore存储数据和测试第六章…

软考之系统架构师-01什么是系统架构师?什么是系统架构?

第一章 绪论 1. 什么是系统架构师&#xff1f; 系统架构设计师(System Architecture Designer&#xff09;是项目开发活动中的关键角色之一。系统架构是系统的一种整体的高层次的结构表示&#xff0c;是系统的骨架和根基&#xff0c;其决定了系统的健壮性和生命周期的长短。 …

系统架构师--面向对象选择题

系统架构师--面向对象选择题 面向对象考题&#xff08;将设计模式删减了&#xff0c;主要考察uml&#xff09;

IDEA使用模板创建webapp时,web.xml文件版本过低的一种解决方法

创建完成后的web.xml 文件&#xff0c;版本太低 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Appl…

关于优先队列的一点细节

在使用优先队列PriorityQueue时&#xff0c;默认的是升序排列&#xff0c;自己可以指定比较器改为降序排列&#xff0c;例如Collections.reverseOrder()等。 但是在我做力扣的过程中&#xff0c;简单的用一个list的addAll方法添加了优先队列里边所有元素&#xff0c;结果发现添…

浅谈智能照明控制系统在地铁照明中的应用

摘要&#xff1a;随着我国经济建设的加速发展&#xff0c;城市轨道交通越来越获得社会的青睐。车站照明关系到轨道交通的服务质量、运营成本、运营成本等多个方面&#xff0c;在既要保证运营成本又要满足国家“节能”要求的背景下&#xff0c;智能照明控制系统应运而生。 轨道…

uniapp:幸运大转盘demo

<template><view class"index"><image src"../../static/img/158.png" mode"" class"banner"></image><view class"title">绿色积分加倍卡拿到手软</view><almost-lottery :lottery…

Element组件案例 Vue路由 前端打包部署步骤

目录 Element组件案例案例需求与分析环境搭建整体布局顶部标题左侧导航栏核心-右侧导航栏表格编写表单编写分页工具栏编写 异步数据加载异步加载数据性别展示修复图片展示修复 Vue路由Vue路由简介Vue路由入门 打包部署前端工程打包部署前端工程nginx介绍部署 Element组件案例 …

【TES720D】基于复旦微的FMQL20S400全国产化ARM核心模块

TES720D是一款基于上海复旦微电子FMQL20S400的全国产化核心模块。该核心模块将复旦微的FMQL20S400&#xff08;兼容FMQL10S400&#xff09;的最小系统集成在了一个60*70mm的核心板上&#xff0c;可以作为一个核心模块&#xff0c;进行功能性扩展&#xff0c;特别是用在控制领域…

DC-DC模块升压电源直流隔离低压升高压正负输出变换器

特点 效率高达 80%以上1*1英寸标准封装电源正负双输出稳压输出工作温度: -40℃~85℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好可直接焊在PCB 上 应用 HRA 0.2~8W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#xff1a;4.5~9V、9~18V、及18~36V、36…

华测监测预警系统 2.2 任意文件读取漏洞复现 [附POC]

文章目录 华测监测预警系统 2.2 任意文件读取漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 华测监测预警系统 2.2 任意文件读取漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章…

macOS Sonoma 14.1beta3(23B5067a)发布

黑果魏叔10 月 11 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 14.1 开发者预览版 Beta 3 更新&#xff08;内部版本号&#xff1a;23B5067a&#xff09;&#xff0c;本次更新距离上次发布隔了 7 天。 根据官方发布的macOS Sonoma 14.1beta3更新日志&#xff0c;此…

如何按照洁净区不同等级选择不同流量的粒子计数器设备?

如今&#xff0c;尘埃粒子计数器已经广泛应用于生物制药、电子产业、医疗手术室、食品加工、洁净工作台、科学实验、航空航天、精密加工及新能源等领域&#xff0c;用于洁净室洁净度等级的测试及判定。今天小编就和大家来浅说说如何按需选择不同流量的尘埃粒子计数器。 01 每个…

vue2安装cesium并使用

一、安装 1.安装cesium npm install cesium1.95.0 -S 2.安装所需 npm install copy-webpack-plugin10.2.4 -D 二、配置 1.配置vue.config.js vue 中引入cesium 需要用copy-webpack-plugin 把一些文件拷贝到打包目录 // vue.config.js const CopyWebpackPlugin require…

中国象棋(人机)

欢迎来到程序小院 中国象棋 玩法&#xff1a; 鼠标左键点击选中棋子&#xff0c;再点击位置进行下棋&#xff0c;可以进行悔棋&#xff0c;重新开始操作&#xff0c;棋盘右侧有AI分析&#xff0c;帮助你进一步提升棋艺&#xff0c;快去下棋吧^^。开始游戏https://www.ormcc.co…

服务器数据恢复-DS5300存储raid5硬盘出现坏道离线的数据恢复案例

服务器数据恢复环境&#xff1a; 某单位一台DS5300存储&#xff0c;1个主机4个扩展柜&#xff0c;组建了2组RAID5&#xff08;一组27块硬盘&#xff0c;一组23块盘&#xff09;。27块盘的那组RAID5阵列存放Oracle数据库文件&#xff0c;存储系统一共分了11个卷。 服务器故障&a…

Linux命令及详细解释、用法

关机/重启/注销 命令 说明 shutdown -h now 即刻关机 shutdown -h 10 10分钟后关机 shutdown -h 11:00 11&#xff1a;00关机 shutdown -h 10 预定时间关机&#xff08;10分钟后&#xff09; shutdown -c 取消指定时间关机 shutdown -r now 重启 shutdown -r 10 10分钟之…

分享一些走心的句子英文表达

曾经有人问更新社媒&#xff0c;除了发生活照&#xff0c;产品照&#xff0c;与客户的聊天截图和一些产品视频&#xff0c;发货视频之外&#xff0c;还能发什么&#xff1f;其实像一些你平时发在朋友圈的走心的话&#xff0c;或者是一些正能量也是可以的&#xff0c;从你的文字…

【内网穿透】Docker部署Drupal并实现公网访问

目录 前言 1. Docker安装Drupal 2. 本地局域网访问 3 . Linux 安装cpolar 4. 配置Drupal公网访问地址 5. 公网远程访问Drupal 6. 固定Drupal 公网地址 前言 Dupal是一个强大的CMS&#xff0c;适用于各种不同的网站项目&#xff0c;从小型个人博客到大型企业级门户网站。…

力扣(LeetCode)2512. 奖励最顶尖的K名学生(C++)

优先队列哈希集合反向思维(或自定义排序) 模拟&#xff0c;请直接看算法思路&#xff1a; 两个哈希集合S1和S2, S1存正面词汇&#xff0c;S2存负面词汇&#xff1b;一个优先队列pq&#xff0c;pq存{score, id}键值对&#xff0c;即学生分数-学生id。 算法流程&#xff1a; 初…