Kimi LeetCode 71. 简化路径 C语言实现

发布时间:2026/11/3 7:53:44

Kimi    LeetCode 71. 简化路径 C语言实现 LeetCode 71. 简化路径 (C 语言)思路:与栈的思路一致。path参数可写,直接在原串上原地分割,用一个指针数组stack保存各目录名的起始位置,最后原地拼接结果。char*simplifyPath(char*path){intlenstrlen(path);// 最多 len/2 1 个目录名,外加哨兵 \0char**stack(char**)malloc((len/22)*sizeof(char*));inttop0;char*ppath;while(*p){// 跳过多余的 /while(*p/)p;if(*p\0)break;char*startp;while(*p*p!/)p;intsegLenp-start;if(segLen1*start.){// . 跳过}elseif(segLen2start[0].start[1].){if(top0)top--;// .. 弹栈,根目录则不弹}else{stack[top]start;// 正常目录名入栈}}// 原地写回结果char*outpath;if(top0){out[0]/;out[1]\0;}else{char*qout;for(inti0;itop;i){*q/;char*sstack[i];while(*s*s!/)*q*s;}*q\0;}free(stack);returnout;}要点说明:指针数组当栈:stack[i]只记录每个目录段的起始指针,长度在遍历时自然可知(到下一个/或结尾),不用额外存长度原地分割:遍历时把每个/留在原地即可,靠p扫描判断段边界..处理:top 0才弹栈,已在根目录时忽略结果原地写回:out从path开头重写,必然不越界(结果长度 ≤ 原长度),最后补\0复杂度:时间 O(n),额外空间 O(n)(栈数组)。验证示例/home//foo/../bar:栈:home→foo→(..弹掉foo)→bar输出/home/bar✓
延伸阅读

更多相关文章

2026/11/3 7:50:16

ARS_40X毫米波雷达ROS驱动开发:CAN帧解析与话题封装实战

简介:该资源面向自动驾驶、机器人导航及环境感知方向的ROS开发者,提供Continental ARS_404与ARS_408毫米波雷达的驱动与ROS封装,支持Noetic与Melodic版本,帮助开发者无需深入底层CAN协议即可完成雷达数据接入。压缩包共47个文件&a…

2026/11/3 7:50:16

公立医院医美系统选型指南:合规与业务双核心

1. 公立医院医美科室的系统选型困境去年协助某三甲医院改造医美科室时,他们的信息科主任拿着三份不同厂商的方案问我:"这些系统功能看起来都差不多,价格却差了三倍,到底该怎么选?"这个问题暴露出公立医院在医…

2026/11/3 7:50:16

CSS light-dark函数:高效实现明暗主题切换

1. 样式革命:light-dark函数如何重塑前端开发体验三年前当我第一次在Chrome Canary中偶然发现light-dark()函数时,就像发现了新大陆。这个看似简单的颜色函数背后,隐藏着CSS主题切换的终极解决方案。从媒体查询到颜色函数,再到图片…

2026/11/3 7:50:16

TS封装格式解析与FFmpeg实战应用

1. TS封装基础概念解析TS(Transport Stream)是MPEG-2标准中定义的一种音视频传输封装格式,最初设计用于数字电视广播等实时流媒体传输场景。与常见的MP4、AVI等封装格式不同,TS采用188字节固定长度的包结构,这种设计使…

2026/11/3 7:50:16

云南本地云服务市场分析与蓝队云技术优势

1. 云南本地云服务市场现状分析云南作为西南地区数字经济发展的重要节点,近年来云计算基础设施需求呈现爆发式增长。根据行业调研数据,2022年滇中城市群企业上云率同比提升47%,但仍有62%的中小企业面临"选型难"问题——既要考虑网络…

2026/11/3 7:45:15

SQLite数据库入门与C语言编程实战

1. SQLite数据库入门指南 SQLite作为一款轻量级的关系型数据库管理系统,以其零配置、无服务器、单文件存储的特性,在嵌入式系统和移动应用中广受欢迎。与MySQL、Oracle等大型数据库不同,SQLite不需要单独的服务器进程,数据库直接…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32实战:基于MAX14431数字隔离器的SPI隔离通信方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

工业SPI隔离通信设计:MAX14431BAEE+与STM32L4A6RG实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32+NRF24L01无线抢答器:硬件设计、通信协议与低功耗实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑