
Leetcode | Simplify Path
遇到'.'时,将其视为进入当前目录的子目录,直接将该路径添加至栈中。 遇到'..'时,如果栈不为空,则弹出栈顶元素,表示回到上一层目录。 遇到其他路径部分,则将其添加至栈中。
发布日期:2025-04-05 01:44:38
浏览次数:8
分类:精选文章
本文共 531 字,大约阅读时间需要 1 分钟。
为了简化给定的Unix风格文件路径,我想到使用一个栈来模拟层次关系。每个栈元素代表一个目录的部分路径。这样,当遇到'..'时,表示上移层级,弹出栈顶元素;而遇到'.'时,则表示进入当前层的子目录,添加相应路径。
首先,对路径进行预处理,确保路径不会以'/'结尾。例如,路径"/home/"可以简化为"/home"。然后,将路径按'/'分割为各个部分,逐个处理:
最终,栈中包含的路径部分按顺序连接起来即为简化后的路径。例如,处理路径"/a/./b/../../c/"的过程:
- 开始时,栈为空。
- 处理"a",将"a"添加至栈,栈为["a"]。
- 处理".",忽略。
- 处理"b",将"b",栈为["a", "b"]。
- 处理"..",弹出"b",栈为["a"]。
- 处理"c",将"c",栈为["a", "c"]。
连接栈元素得到"/a/c"。但如果没有遇到'..'且栈为空,比如路径为"/../",则返回"/"。
通过这种方法,可以有效地处理各种路径简化情况,包括避免多个连续'/'和层级跳转。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年05月09日 03时08分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Kubernetes学习总结(1)——Kubernetes入门简介
2025-04-03
Kubernetes学习总结(2)——Kubernetes设计架构
2025-04-03
Kubernetes学习总结(5)——Kubernetes 常见面试题汇总
2025-04-03
Kubernetes学习总结(6)——Kubernetes 7周年:它为什么如此受欢迎?
2025-04-03
Kubernetes学习总结(7)——学习 Kubernetes 的 Pod
2025-04-03
Kubernetes实战(一)-Kubernetes集群搭建
2025-04-03
Kubernetes实战(三十一)-Calico网络部署(推荐)
2025-04-03
Kubernetes实战(三十三)-外部Etcd集群部署与调优(更安全的数据存储策略)
2025-04-03
Kubernetes实战(三)-定向调度(NodeSelector)
2025-04-03
Kubernetes实战(二十九)-集群资源管理(CPU & Memory)
2025-04-03
Kubernetes实战(二十二)-Etcd 集群部署(安全)
2025-04-03
Kubernetes实战(二十八)-环境共享与隔离(Namespace)
2025-04-03