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"。但如果没有遇到'..'且栈为空,比如路径为"/../",则返回"/"。

    通过这种方法,可以有效地处理各种路径简化情况,包括避免多个连续'/'和层级跳转。

    上一篇:LeetCode – Refresh – 4sum
    下一篇:leetcode Valid Parentheses

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2025年05月09日 03时08分24秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章

    Kubernetes学习总结(1)——Kubernetes入门简介 2025-04-03
    Kubernetes学习总结(2)——Kubernetes设计架构 2025-04-03
    Kubernetes学习总结(3)——一年时间打造全球最大规模之一的Kubernetes集群,蚂蚁金服怎么做到的? 2025-04-03
    Kubernetes学习总结(4)——Kubernetes v1.20 重磅发布 | 新版本核心主题 & 主要变化解读 2025-04-03
    Kubernetes学习总结(5)——Kubernetes 常见面试题汇总 2025-04-03
    Kubernetes学习总结(6)——Kubernetes 7周年:它为什么如此受欢迎? 2025-04-03
    Kubernetes学习总结(7)——学习 Kubernetes 的 Pod 2025-04-03
    Kubernetes学习总结(8)—— Kubernetes Pod 资源管理 和 Pod 服务质量 2025-04-03
    Kubernetes学习总结(9)—— 基础架构的未来是 K8s,那么 K8s 的未来在何方? 2025-04-03
    kubernetes实战(十三):k8s使用helm持久化部署harbor集成openLDAP登录 2025-04-03
    Kubernetes实战(一)-Kubernetes集群搭建 2025-04-03
    Kubernetes实战(七)-优先级调度(Pod Priority Preemption) 2025-04-03
    Kubernetes实战(三十一)-Calico网络部署(推荐) 2025-04-03
    Kubernetes实战(三十三)-外部Etcd集群部署与调优(更安全的数据存储策略) 2025-04-03
    Kubernetes实战(三十二)-Kubeadm 安装 Kubernetes v1.24.0 2025-04-03
    Kubernetes实战(三)-定向调度(NodeSelector) 2025-04-03
    Kubernetes实战(二十九)-集群资源管理(CPU & Memory) 2025-04-03
    Kubernetes实战(二十二)-Etcd 集群部署(安全) 2025-04-03
    Kubernetes实战(二十五)-Flannel 网络部署(不推荐,不支持 Etcd3) 2025-04-03
    Kubernetes实战(二十八)-环境共享与隔离(Namespace) 2025-04-03