C语言 | Leetcode C语言题解之第394题字符串解码

题目:

题解:


#define N 2000typedef struct {int data[30];;int top;
} Stack;void push(Stack *s, int e) { s->data[(s->top)++] = e; }int pop(Stack *s) { return s->data[--(s->top)]; }//多位数字串转换成int
int strToInt(char *s)
{char val[] = {'\0', '\0', '\0', '\0'};int result = 0;for(int i = 0; isdigit(s[i]); ++i)val[i] = s[i];for(int i = strlen(val) - 1, temp = 1; i >= 0; --i, temp *= 10)result += ((val[i] - '0') * temp);return result;
}char* decodeString(char *s)
{Stack magnification; magnification.top = 0;Stack position; position.top = 0;char *result = (char*)malloc(sizeof(char) * N);char *rear = result;for(int i = 0; s[i] != '\0'; ) {if(isdigit(s[i])) {push(&magnification, strToInt(&s[i]));while(isdigit(s[i]))++i;}else if(s[i] == '[') {push(&position, rear - result);++i;}else if(s[i] == ']') {char *p = result + pop(&position);int count = (rear - p) * (pop(&magnification) - 1);for(; count > 0; --count)*(rear++) = *(p++);++i;}else*(rear++) = s[i++];}*rear = '\0';return result;
}

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

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

相关文章

Charles抓包全流程(Mac端+iOS端)

文章目录 与其他抓包软件的对比FiddlerWireShark Charles下载安装及配置Charles抓包实践小结 Charles Proxy是一个广泛使用的网络调试代理工具,它允许开发者监控和分析所有经过计算机的HTTP和SSL/HTTPS网络流量信息。 与其他抓包软件的对比 Fiddler Charles 支持多…

Leetcode3250. 单调数组对的数目 I

Every day a Leetcode 题目来源:3250. 单调数组对的数目 I 解法1:记忆化搜索 题目输入一个数组nums。 假设有两个数组A和B,A递增,B递减,且 Ai Bi numsi ​ 问有多少对(A,B)数组对。 解法: 代码&…

自动回复的客服系统-支持关键词回复或AI智能回复

用户咨询量很大的时候,迫切需要一个自动回复的工具 对于公域流量,非常推荐大家使用网页版在线客服系统,与访客沟通。 既能实现自动回复,又能人工后台即时回复 \/x : llike620

Redis集群搭建以及用idea连接集群

一、redis的集群搭建: 判断一个是集群中的节点是否可用,是集群中的所用主节点选举过程,如果半数以上的节点认为当前节点挂掉,那么当前节点就是挂掉了,所以搭建redis集群时建议节点数最好为奇数,搭建集群至少需要三个主节点,三个从节点,至少需要6个节点。…

Qt/C++百度地图/高德地图/天地图/腾讯地图/谷歌地图/加载绘图工具栏

一、前言说明 在地图中提供一个绘图工具栏,可以便捷的在地图上添加各种覆盖物,比如折线、多边形、矩形、圆形等,然后可以获取这些覆盖物的路径以及中心点等属性。这里有几个小插曲,比如百度地图gl版本默认不提供这个功能&#xf…

TPH-YOLOv5:基于Transformer预测头的改进YOLOv5,用于无人机捕获场景的目标检测

摘要 提出了TPH-YOLOv5。在YOLOv5的基础上,增加了一个预测头来检测不同尺度的目标。然后用Transformer Prediction Heads(TPH)代替原有的预测头,探索自注意机制的预测潜力。还集成了卷积块注意力模型(CBAM)…

传统CV算法——图像特征算法之斑点检测算法

文章目录 3. 斑点检测3.1 斑点的理解3.1.1 斑点定义3.1.2 斑点检测 3.2斑点检测基本原理3.3LoG计算流程及原理1. 高斯函数2. 拉普拉斯算子3. 组合高斯和平滑4. 计算 LoG4.1. 一阶导数4.2. 二阶导数4.3. 组合二阶导数 5. LoG 的特性6.多尺度检测 3.4 DOG3.4.1 DoG 的基本原理3.4…

Java中调用第三方接口

文章目录 0、测试接口1、JDK的HttpURLConnection2、Apache的HttpClient3、SpringBoot的RestTemplate3.1 GET3.2 POST 4、SpringCloud的Feign5、Hutool的HttpUtil6、失败后重试 0、测试接口 写两个测试接口,一个GET,一个POST RestController RequestMap…

关于IDEA的快捷键不能使用的原因

有时候IDEA的快捷键用不了,这时应该是快捷键发生冲突了,重新设置一下即可。以批量修改变量名称的shift f6为例(我的这个快捷键用不了): 初始的rename的快捷键为shift f6 这个快捷键是冲突的,所以我们需要…

Centos7安装FFmpeg详细步骤(已验证成功)

最近我们需要使用FFmpeg来合成视频功能,这就需要用到服务器必须安装FFmpeg了。 FFmpeg 是一款功能强大的跨平台命令行工具,可以处理各种音频和视频文件,包括转换视频和音频格式、剪辑、合并视频和音频、提取音频、添加字幕、添加水印、调整视…

【Linux跬步积累】—— 环境变量、程序地址空间、进程地址空间、Linux2.6内核进程调度队列

🌏博客主页:PH_modest的博客主页 🚩当前专栏:Linux跬步积累 💌其他专栏: 🔴 每日一题 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮&#xff0…

什么?!新版 Node.js V22.5 自带 SQLite 模块啦

前言 2024年7月,Node.js V22.5.0 版本发布,自带了 SQLite 模块,意味着开发者可以直接在程序中使用 SQLite 数据库,而无需引入第三方库👍。 话不多说,感觉来体验一波✈。 安装/升级 我现在用的是21.4.0版…

Trm理论 3(ELMo)

LSTM模型 如图,LSTM模型是rnn模型的改良版,通过ft来选择性的保留上一次得到的信息 ELMo模型(双向LSTM) ELMo模型是对word2vec的改良,改良了word2vec的二义性 对比上下两图,可以发现,WE对预测…

【qt】qss使用

1.按钮设置颜色 ui->pushButton->setStyleSheet("QPushButton { color : red;}");也可以通过rgb来设置 ff表示红色拉满,gb为0当然是红色 这只是针对pushbutton对象的控件设置的,如果我想设置所有的按钮空间都是一个颜色 这是通过设置界…

【无标题】【Datawhale X 李宏毅苹果书 AI夏令营】批量归一化

1、批量归一化的作用 批量归一化(Batch Normalization,BN)的把误差曲面变得平滑,使训练能够得到快速收敛; 训练过程的优化:使用自适应学习率等比较进阶的优化训练方法; 训练对象的优化&#xf…

Linux 服务器下非root用户安装CUDA完整流程(多次踩雷经验总结)

参考博客: linux下安装cuda和cudnn(非root权限)_cuda下载安装 远程服务器 linux-CSDN博客 Linux下非root用户安装CUDA_linux下cuda-toolkit-archive-CSDN博客 非root用户安装cuda10.1,以及CUDA不同版本间切换_非root用户.run文…

android kotlin基础复习—if when

1、新建kt并运行 新建文件kt 运行文件kt 2、kotlin语句 if when的使用 var x 5val y 9if (x in 1..8) {println("x 在区间内")} 说明&#xff1a; var&#xff1a;定义变量 val定义常量。 代码中会看到那个<&#xff0c;也就是说包括1&#xff0c;8。 3、输…

glsl着色器学习(二)

书接上文&#xff0c;第一篇文章已经将顶点着色器和片段着色器的内容编写好了&#xff0c;这篇文章就创建着色器并编译 创建顶点着色器对象 const vertexShader gl.createShader(gl.VERTEEX_SHADER); gl.shaderSource(vertexShader,vsGLSL); gl.compileShader(vertexShader …

J.U.C Review - 阻塞队列原理/源码分析

文章目录 阻塞队列的由来BlockingQueue的操作方法BlockingQueue的实现类ArrayBlockingQueueLinkedBlockingQueueDelayQueuePriorityBlockingQueueSynchronousQueue 阻塞队列原理深入分析1. 构造器和监视器初始化2. put操作的实现3. take操作的实现4. 注意事项小结 线程池中的阻…

qmt量化交易策略小白学习笔记第57期【qmt编程之期权数据--获取指定期权品种的详细信息--内置Python】

qmt编程之获取期权数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 获取指定期权品种的详细信息 该函数能帮助用户获取指定期权品种的详细信息&#xff0c;如期权代码、市场、涨跌停价、期…