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✓

相关新闻

Iosevka 3.2.0 版本详解:字符变体扩展、Unicode 覆盖增强与字形修复实战指南

Iosevka 3.2.0 版本详解:字符变体扩展、Unicode 覆盖增强与字形修复实战指南

Iosevka 3.2.0 版本详解:字符变体扩展、Unicode 覆盖增强与字形修复实战指南 【免费下载链接】Iosevka Versatile typeface for code, from code. 项目地址: https://gitcode.com/GitHub_Trending/io/Iosevka Iosevka 是一款"由代码生成的代码字体"…

2026/9/15 2:04:06 阅读更多 →
MOSFET单级放大器三结构对比:CS、CG与源随器的原理与协同设计

MOSFET单级放大器三结构对比:CS、CG与源随器的原理与协同设计

1. 为什么这三个结构必须放在一起讲?——从“单级放大器的三张面孔”说起刚带学生做模电实验时,常遇到一个典型困惑:明明教材把共源极(CS)、共栅极(CG)、源随器(SF)分三节…

2026/9/13 23:47:21 阅读更多 →
轻量级嵌入式调试工具:Qt6+C++实现JSON协议解析与插件扩展

轻量级嵌入式调试工具:Qt6+C++实现JSON协议解析与插件扩展

1. 项目概述:为什么一个“轻量易扩展”的上位机调试助手值得重写一遍 我做嵌入式通信和工控设备调试快十二年了,从最早用串口助手手敲十六进制命令,到后来用Vofa拖PID曲线、用Serial Studio看传感器波形,再到自己搭Qt5的简易界面—…

2026/9/13 23:47:21 阅读更多 →

最新新闻

视频元数据管理工具与批量处理实战指南

视频元数据管理工具与批量处理实战指南

1. 视频元数据管理的重要性与痛点在数字媒体爆炸式增长的今天,视频文件已成为我们日常工作和娱乐的重要组成部分。每个视频文件都携带了大量元数据(Metadata),这些隐藏在文件内部的信息记录了视频的标题、作者、创建日期、版权信息…

2026/9/15 2:04:12 阅读更多 →
OpenHarmony下Flutter生命周期检测:从信号错乱到稳定可用的实战指南

OpenHarmony下Flutter生命周期检测:从信号错乱到稳定可用的实战指南

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

2026/9/15 2:04:12 阅读更多 →
身份可见性与智能平台:如何收缩IAM攻击面

身份可见性与智能平台:如何收缩IAM攻击面

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

2026/9/15 2:04:12 阅读更多 →
微信小游戏源码调试与改造:从猫咪游戏入门到Unity打包上架

微信小游戏源码调试与改造:从猫咪游戏入门到Unity打包上架

简介:这套微信小游戏猫咪源码包,是一份面向微信小游戏开发初学者或对H5游戏感兴趣的读者的学习参考资源,主要用于了解小游戏页面搭建、猫咪形象展示与简单交互的实现方式,通过实际工程文件降低上手门槛。压缩包约49KB,…

2026/9/15 2:04:12 阅读更多 →
模式识别实验代码:Bayes、Fisher、KNN与PCA人脸识别实战

模式识别实验代码:Bayes、Fisher、KNN与PCA人脸识别实战

简介:基于Python的模式识别实验代码包,直接对应本科模式识别课程常见实验任务,适合计算机/人工智能相关专业学生对照学习与完成实验报告。代码包围绕三类典型实验展开:基于FAMALE.TXT与MALE.TXT建立Bayes性别分类器,并…

2026/9/15 2:04:12 阅读更多 →
前端面试进阶:安全取值、Promise.all手写与闭包内存泄漏实战解析

前端面试进阶:安全取值、Promise.all手写与闭包内存泄漏实战解析

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

2026/9/15 2:03:12 阅读更多 →

日新闻

Java高级技术:从语言特性到性能优化全解析

Java高级技术:从语言特性到性能优化全解析

1. Java高级技术概述Java作为一门成熟的编程语言,经过二十多年的发展已经形成了完整的生态系统。在企业级应用开发、大数据处理、移动开发等领域,Java都占据着重要地位。掌握Java高级技术不仅意味着能够编写更高效的代码,更代表着开发者能够解…

2026/9/15 0:00:23 阅读更多 →
C#与Halcon结合的工业视觉处理实战指南

C#与Halcon结合的工业视觉处理实战指南

1. 项目概述:C#与Halcon强强联合的视觉处理利器这个基于C#和Halcon的视觉处理Demo项目,是我在工业质检领域摸爬滚打多年后提炼出的实战精华。它完美融合了C#的界面开发优势与Halcon强大的图像处理能力,就像给视觉工程师配上了一把瑞士军刀。项…

2026/9/15 0:00:23 阅读更多 →
32路工业串口服务器的硬核选型指南:确定性、鲁棒性与协议下沉

32路工业串口服务器的硬核选型指南:确定性、鲁棒性与协议下沉

1. 为什么“32路复合型”不是营销话术,而是工业现场真实痛点的硬解你有没有遇到过这样的场景:在某大型能源站的PLC机柜里,十几台不同年代、不同品牌的温控仪、电表、气体分析仪、阀门控制器,全靠RS-485总线挂在一根线上&#xff0…

2026/9/15 0:00:23 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/14 5:45:49 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/15 1:32:25 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/15 1:32:21 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/14 17:35:10 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/14 16:59:29 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/14 5:45:14 阅读更多 →