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 8:50:28

Python自动化测试实战:从基础到框架精通的10周进阶指南

1. 为什么需要系统学习自动化测试?在当今快速迭代的软件开发环境中,自动化测试已成为保障产品质量的核心手段。我经历过从纯手工测试到自动化测试的转型过程,深刻体会到掌握这项技能对职业发展的重要性。传统手工测试在面对频繁的版本更新时&…

2026/11/3 8:50:28

三维云设计技术:工业设计的云端革新方案

1. 三维云设计技术概述在工业设计领域,SolidWorks、AutoCAD等专业软件长期占据主导地位,但传统本地化部署模式正面临三大核心挑战:首先是硬件投入成本高企,每位设计师都需要配备高性能工作站;其次是数据安全风险加剧&a…

2026/11/3 8:50:28

开源项目管理工具Plane:技术团队的高效替代方案

1. 开源项目管理工具Plane深度解析 最近在GitHub上发现一个名为Plane的开源项目管理工具,经过两周的实测体验,我必须说这可能是2024年最值得关注的开源项目之一。作为一个长期使用Jira、ClickUp等商业工具的团队负责人,Plane给我的第一印象是…

2026/11/3 8:50:28

华为OD机考:或门电路故障的二进制位交换问题解析

1. 问题背景与需求分析 最近在准备华为OD机考时遇到一道关于或门电路故障的有趣题目。题目描述某厂商生产的一批或门电路存在不稳定现象:在计算两个二进制数的或操作时,第一个输入数的某两个比特位会发生随机交换。作为工程师,我们需要计算在…

2026/11/3 8:50:28

端侧AI与智能体编排:从云端租用到端侧自持的技术变革

1. 三条新闻背后的共同信号:AI正在从"云端租用"走向"端侧自持"2026年9月23日这一天,AI圈同时冒出三件事,单看每件都挺炸,但把它们摆在一起看,你会发现一条非常清晰的暗线:AI的能力正在…

2026/11/3 8:45:27

常用概率分布的期望与方差:从公式推导到模型诊断

1. 项目概述:为什么一张表能让你在统计推断中少走三年弯路“常用概率分布及其数学期望和方差”——这看起来像教科书目录里最不起眼的一节,甚至可能是你考前突击时跳过的一页。但我在某高校统计建模实验室带学生做真实项目时反复验证过:92%的…

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
免费获取方案
☎咨询二维码 ☎ ↑