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

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;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Framework 学习总结博客
  • 快速入门编写一个Java程序
  • 【mysql】mysql之主从部署以及介绍
  • 无头服务(Headless Service)
  • gen_server补充基础学习
  • linux cmake版本升级教程(Centos7)
  • Vue3:el-table实现日期的格式化
  • 使用python绘制森林图的教程
  • 如何制作Vector Vflash中加载的DLL文件--自动解锁刷写过程中27服务
  • C++类与对象(下)--最后的收尾
  • jmeter依赖jar包找不到类路径
  • SQL入门题
  • 【IPV6从入门到起飞】5-3 IPV6+Home Assistant(ESP32+MQTT+GPIO)远程控制灯
  • Java 抽象类 接口--详解
  • 判断语句有几种写法
  • Docker入门(二) - Dockerfile
  • Python - 闭包Closure
  • Python socket服务器端、客户端传送信息
  • ReactNativeweexDeviceOne对比
  • spring boot 整合mybatis 无法输出sql的问题
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • VUE es6技巧写法(持续更新中~~~)
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 高性能JavaScript阅读简记(三)
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 今年的LC3大会没了?
  • 跨域
  • 如何设计一个微型分布式架构?
  • 三栏布局总结
  • 深入浅出Node.js
  • 算法---两个栈实现一个队列
  • 与 ConTeXt MkIV 官方文档的接驳
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • Linux权限管理(week1_day5)--技术流ken
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 数据库巡检项
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​如何使用QGIS制作三维建筑
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (12)目标检测_SSD基于pytorch搭建代码
  • (19)夹钳(用于送货)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (c语言)strcpy函数用法
  • (Java入门)学生管理系统
  • (python)数据结构---字典
  • (三)docker:Dockerfile构建容器运行jar包
  • (转)setTimeout 和 setInterval 的区别
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Standard 的管理策略
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)