华为OD机试真题 Java 实现【简单的解压缩算法】【2023Q1 200分】,附详细解题思路

2023-11-02

一、题目描述

现需要实现一种算法,能将一组压缩字符串还原成原始字符串,还原规则如下:

1、字符后面加数字N,表示重复字符N次。例如:压缩内容为A3,表示原始字符串为AAA。
2、花括号中的字符串加数字N,表示花括号中的字符串重复N次。例如:压缩内容为{AB}3,表示原始字符串为ABABAB。
3、字符加N和花括号后面加N,支持任意的嵌套,包括互相嵌套。例如:压缩内容可以{A3B1{C}3}3。

二、输入描述

输入一行压缩后的字符串。

三、输出描述

输出压缩前的字符串。

四、补充说明

  1. 输入保证,数字不会为0,花括号中的内容不会为空,保证输入的都是合法有效的压缩字符串;
  2. 输入输出字符串区分大小写;
  3. 输入的字符串长度为范围[1, 10000];
  4. 输出的字符串长度为范围[1, 100000];
  5. 数字N范围[1, 10000]

五、解题思路

  1. 创建一个栈Stack来辅助还原原始字符串;
  2. 使用一个指针i遍历压缩字符串;
  3. 当前字符为左花括号{时,将其入栈;
  4. 当前字符为字母时,将其转换为字符串并压入栈;
  5. 当前字符为数字时,找到连续的数字字符,并将其转换为整数time;
  6. 弹出栈顶元素,重复time次并拼接成字符串add;
  7. 将生
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为OD机试真题 Java 实现【简单的解压缩算法】【2023Q1 200分】,附详细解题思路 的相关文章

随机推荐

  • Docker基础修炼1--Docker简介及快速入门体验

    本文作为Docker基础系列第一篇文章 将详细阐述和分析三个问题 Docker是什么 为什么要用Docker 如何快速掌握Docker技术 本系列文章中Docker的用法演示是基于CentOS7进行 因此假设读者已经掌握了初步的Linux知
  • 使用选择排序和二分法对传入的数组进行排序和查找

    选择排序和二分法 使用二分法查找数组中某个值得位置是要在数组提前排好序的前提下才能使用 所以要将数组进行排序 数组排序有冒泡排序 选择排序 插入排序等 今天我们使用选择排序对数组进行排序 测试类代码如下图 运行结果如下图 位置为i 1 所以
  • JSP基础理论

    来自 千峰涛哥B站资料 一 JSP概述 1 1 Servlet使用的不足 Servlet是一个动态网页技术 客户端通过请求Servlet类可以相应给客户端一个动态网页 但是Servlet在使用过程中有什么不足之处呢 开发方式麻烦 继承Htt
  • 在Java基础上对比学习C#基本语法

    文章目录 一 引包 二 构造函数 三 析构函数 四 C 数据类型 五 加框 boxing 和消框 unboxing 六 运算符 七 控制语句 八 类的继承 九 方法参数的种类 十 操作符重载 十一 this关键字 十二 类的多态 十三 抽象
  • 目标检测模型的评价指标 mAP

    在使用机器学习解决实际问题时 通常有很多模型可用 每个模型都有自己的怪癖 quirks 并且基于各种因素 性能会有所不同 模型性能的评定都是在某个数据集上进行的 通常这个数据集被称为 validation 或 test 数据集 模型性能的评
  • Java+Swing形成GUI图像界面

    一 Swing 简介 Swing 主要用来开发 GUI 程序 GUI Graphical User Interface 即图形用户界面 Java 中针对 GUI 设计提供了丰富的类库 这些类分别位于 java awt 和 java swin
  • Android高仿qq及微信底部菜单的几种实现方式

    文章目录 导航类型 第一种方式 侧滑菜单 底部导航 已经实现聊天 表情 图片 位置 语音等信息的发送 第二种方式 Fragment PopupWindow仿QQ空间最新版底部菜单栏 第三种方式 FragmentTabHost实现qq底部Ta
  • (一)在ubuntu20.04安装VPN服务

    很多时候需要从世界各地来访问公司服务器 电脑 工厂设备 实现方式有很多种 主要分为VPN和内网穿透方式 但是他们俩都存在一些问题 例如内网穿透主要利用外网IP 端口映射内网IP地址 端口方式 需要在设备端 电脑端装软件 例如frp方式需要在
  • 5.C++力扣刷题645

    题目 集合 s 包含从 1 到 n 的整数 不幸的是 因为数据错误 导致集合里面某一个数字复制了成了集合里面的另外一个数字的值 导致集合丢失了一个数字并且有一个数字重复 给定一个数组 nums 代表了集合 S 发生错误后的结果 请你找出重复
  • 最大子数组问题

    最大子数组问题 本文只是做一个记录 更细致的思路请查看算法导论 最大子数组结构体 typedef struct int low high sum SubArray 暴力求解 计算所有的数组区间的和进而得到最大的子数组 算法复杂度为 n 这种
  • TypeError: _open() got an unexpected keyword argument 'as_grey'

    报错 TypeError open got an unexpected keyword argument as grey 解决方法 把caffe io load imga读取图片改成cv2读取 image cv2 imread imageP
  • Windows设置IP地址

    控制面板里的 网络和共享中心 里可以设置IP地址 如果里面是 自动IP地址 电脑的IP地址就会 变化莫测 手动设置就可以避免这种问题 自动IP地址 其实这就是电脑的默认设置 修改路径如下 随便打开一个文件夹 gt 在地址栏输入 控制面板 g
  • kaggle入门(二)——Spaceship Titanic

    Spaceship Titanic KagglePredict which passengers are transported to an alternate dimensionhttps www kaggle com competiti
  • CentOS7安装Hadoop和zookeeper的各种问题

    最近在上大数据选修课 课程实验需要在CentOS上安装Hadoop和zookeeper 遇到了很多问题 记录一下 原本准备从头写个完整的安装记录的 发现我实在是不想回头看一遍了 就记录一些需要注意的地方吧 虚拟机的安装 安装过程按照书上面来
  • Java的Socket编程实例

    socket简介 套接字 socket 是一个抽象层 应用程序可以通过它发送或接收数据 可对其进行像对文件一样的打开 读写和关闭等操作 套接字允许应用程序将I O插入到网络中 并与网络中的其他应用程序进行通信 代码解释 Socket编程可以
  • c#应用程序的发布

    最近做了C 软件 发布给客户用时 发现客户运行不起来 原因是客户电脑上没有装Frame Work库 那么我们得把exe打包发布 发布的安装文件相当的大 以FrameWork为例达到了200多M 这就是为什么 有的应用程序只有1M多 可是发布
  • 聊聊项目测试时间不足怎么办

    这是鼎叔的第十九篇原创文章 行业大牛和刚毕业的小白 都可以进来聊聊 欢迎关注本人专栏和微信公众号 敏捷测试转型 大量原创思考文章陆续推出 4月23日周日 鼎叔返场再次参与小道消息播客 和主持人老徐和兔子继续畅谈 本文是返场直播的第一部分 重
  • 网络安全入门笔记(共327页),助你步入安全门槛

    前言 随着Web技术发展越来越成熟 而非Web服务越来越少的暴露在互联网上 现在互联网安全主要指的是Web安全 为了自身不 裸奔 在大数据里 渐渐开始学习Web安全 在学习Web安全的过程中 发现很大一部分知识点都相对零散 如果没有相对清晰
  • 【Pytorch】第 4 章 :时间差异和 Q 学习

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 华为OD机试真题 Java 实现【简单的解压缩算法】【2023Q1 200分】,附详细解题思路

    一 题目描述 现需要实现一种算法 能将一组压缩字符串还原成原始字符串 还原规则如下 1 字符后面加数字N 表示重复字符N次 例如 压缩内容为A3 表示原始字符串为AAA 2 花括号中的字符串加数字N 表示花括号中的字符串重复N次 例如 压缩