news 2026/4/16 16:39:47

LeetCode 71:简化 Unix 路径(Simplify Path)——栈 / vector

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 71:简化 Unix 路径(Simplify Path)——栈 / vector

LeetCode 71:简化 Unix 路径(Simplify Path)——栈 / vector

1. 题目描述

给定一个 Unix 风格的绝对路径path,请将其化简为规范路径。规则如下:

  • 多个连续的/视为一个/
  • .表示当前目录,忽略
  • ..表示返回上一级目录(若已在根目录/,则保持/
  • 其他字符串视为目录名,保留

输出要求:

  • 必须以/开头
  • 目录之间用单个/分隔
  • 末尾不能多一个/(除非输出就是根目录/

2. 解题思路(用栈保存目录)

把路径按/切成一个个目录片段(token),用vector<string>充当“栈”:

  • token 为空:说明是开头的/或出现//→ 跳过
  • token ==.:当前目录 → 跳过
  • token ==..:返回上级 → 栈非空则pop_back()
  • 其他:正常目录名 →push_back()

最后把栈中的目录按顺序拼接回去:

  • 栈空 → 返回/
  • 否则 →/" + dir1 + "/" + dir2 + ...

3. 示例

  • 输入:/home/
    输出:/home

  • 输入:/a/./b/../../c/
    输出:/c

  • 输入:/../
    输出:/

  • 输入:/home//foo/
    输出:/home/foo


4. 代码实现

#include<string>#include<vector>usingnamespacestd;classSolution{public:stringsimplifyPath(string path){vector<string>st;string name;intlen=static_cast<int>(path.size());for(inti=0;i<=len;++i){charc=(i==len)?'/':path[i];if(c=='/'){//name为空有2种情况,一种就是开始就是 '/'//另一种就是连续的 '/'(因为上次name被clear了)if(name.empty())continue;if(name=="."){}elseif(name==".."){if(!st.empty())st.pop_back();}else{st.emplace_back(name);}name.clear();}else{name.push_back(c);}}if(st.empty())return"/";string res;for(constauto&s:st){res.push_back('/');res+=s;}returnres;}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 10:41:30

【毕业设计】基于springboot个人博客系统的设计与实现博客发布和阅读(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/16 13:00:06

【毕业设计】基于springboot海洋馆参观预约系统的设计与实现基于springboot海洋馆预约系统的设计与实现海洋生物科普、互动问答(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围::小程序、SpringBoot、SSM、JSP、Vue、PHP、Java、pyth…

作者头像 李华
网站建设 2026/4/16 15:49:54

Java计算机毕设之基于Java Web的校园菜鸟驿站管理系统校园菜鸟驿站管理系统Java校园快递取件管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/4/16 13:34:05

自动化测试的艺术:Ascend C算子生成测试数据脚本解析与增强

在昇腾AI处理器生态中&#xff0c;测试数据生成脚本是算子开发的质量生命线&#xff0c;本文将从工业级实践角度深度解析其设计哲学与增强策略。 目录 摘要 一、技术原理深度解析 1.1 &#x1f3d7;️ 架构设计理念&#xff1a;两段式测试框架 1.2 &#x1f527; 核心算法实…

作者头像 李华
网站建设 2026/4/16 13:37:21

NO16数据结构选择题考点|树

树 结点的度&#xff1a;是指该结点的孩子数量 \begin{aligned} &\textbf{结点的度}&#xff1a;\text{是指该结点的孩子数量} \end{aligned} ​结点的度&#xff1a;是指该结点的孩子数量​路径和路径长度&#xff1a;树中两个结点之间的路径是由这两个结点之间所经过的结…

作者头像 李华