力扣 394. 字符串解码

devtools/2025/1/17 17:43:32/

🔗 https://leetcode.cn/problems/decode-string

题目

  • 对字符串中的 k[s] 解码为 s 重复 k 次

思路

  • 碰到数字,开始进行递归 decode 展开,否则字符不解码
  • 针对于解码的部分,先明确 k 的数字是多少,再明确 [ ] 括号中的 str 是什么,最后重复 k 次
  • 注意这个过程中,要是碰到字符串是数字开头,递归进行 decode

代码

class Solution {
public:string decode(string s, int start, int& ori_len) {int index = start;int num = 0;while (s[index] != '[') {num = num* 10 +  s[index] - '0';index++;}string str;for (int i = index + 1; i < s.size(); i++) {if (s[i] == ']') {ori_len = i - start;break;}if (s[i] >= '0' && s[i] <= '9') {int len = 0;str += decode(s, i, len);i += len;} else {str += s[i];}}string ans;while (num--) {ans += str;}return ans;}string decodeString(string s) {string ans;for (int i = 0; i < s.size(); i++) {if (s[i] >= '0' && s[i] <= '9') {int ori_len = 0;ans += decode(s, i, ori_len);i += ori_len;} else {ans += s[i];}}return ans;}
};

http://www.ppmy.cn/devtools/151322.html

相关文章

精通Python (10)

一&#xff0c;基于tkinter模块的GUI GUI是图形用户界面的缩写&#xff0c;图形化的用户界面对使用过计算机的人来说应该都不陌生&#xff0c;在此也无需进行赘述。Python默认的GUI开发模块是tkinter&#xff08;在Python 3以前的版本中名为Tkinter&#xff09;&#xff0c;从这…

2025-1-15-十大经典排序算法 C++与python

文章目录 十大经典排序算法比较排序1. 冒泡排序2. 选择排序3. 插入排序4. 希尔排序5. 归并排序6. 快速排序7. 堆排序 非比较排序8. 计数排序9. 桶排序10. 基数排序 十大经典排序算法 十大经典排序算法可以分为比较排序和非比较排序: 前者包括冒泡排序、选择排序、插入排序、希…

浅谈云计算14 | 云存储技术

云存储技术 一、云计算网络存储技术基础1.1 网络存储的基本概念1.2云存储系统结构模型1.1.1 存储层1.1.2 基础管理层1.1.3 应用接口层1.1.4 访问层 1.2 网络存储技术分类 二、云计算网络存储技术特点2.1 超大规模与高可扩展性2.1.1 存储规模优势2.1.2 动态扩展机制 2.2 高可用性…

microPython搭建webServer--(三)使用microdot库实现用户提交设定后断电保存

很多用esp32diy的产品中&#xff0c;用户需要在首次使用时设定好wifi参数&#xff0c;基本思路就是开机之后&#xff0c;esp32自身作为热点&#xff0c;用户连接此热点后&#xff0c;访问网页设定参数&#xff0c;esp32将参数存入自身&#xff0c;保证断电保存。重启后&#xf…

深度学习blog-剪枝和知识蒸馏

深度学习网络模型从卷积层到全连接层存在着大量冗余的参数&#xff0c;大量神经元激活值趋近于0&#xff0c;将这些神经元去除后可以表现出同样的模型表达能力&#xff0c;这种情况被称为过参数化。因此需要一些技术手段减少模型的复杂性&#xff0c;去除一些不重要的参数和连接…

python mysql库的三个库mysqlclient mysql-connector-python pymysql如何选择,他们之间的区别

三者的区别 1. mysqlclient 特点&#xff1a; 是一个用于Python的MySQL数据库驱动程序&#xff0c;用于与MySQL数据库进行交互。 依赖于MySQL的本地库&#xff0c;因此在安装时需要确保系统上已安装了必要的依赖项&#xff0c;如libmysqlclient-dev等。 性能较好&#xff0c…

基于Netty+InfluxDB+MQTT+Spring Boot的物联网(IoT)项目实现方案

基于NettyInfluxDBMQTTSpring Boot的物联网&#xff08;IoT&#xff09;项目实现方案 引言 物联网&#xff08;IoT&#xff09;技术近年来发展迅速&#xff0c;广泛应用于智能城市、工业物联网、农业物联网等领域。本文将详细介绍如何使用Netty、InfluxDB、MQTT和Spring Boot…

【大数据】机器学习-----模型的评估方法

一、评估方法 留出法&#xff08;Holdout Method&#xff09;&#xff1a; 将数据集划分为训练集和测试集两部分&#xff0c;通常按照一定比例&#xff08;如 70% 训练集&#xff0c;30% 测试集&#xff09;。训练集用于训练模型&#xff0c;测试集用于评估模型性能。优点&…