博客
关于我
Leetcode | Simplify Path
阅读量:790 次
发布时间:2023-01-31

本文共 531 字,大约阅读时间需要 1 分钟。

为了简化给定的Unix风格文件路径,我想到使用一个栈来模拟层次关系。每个栈元素代表一个目录的部分路径。这样,当遇到'..'时,表示上移层级,弹出栈顶元素;而遇到'.'时,则表示进入当前层的子目录,添加相应路径。

首先,对路径进行预处理,确保路径不会以'/'结尾。例如,路径"/home/"可以简化为"/home"。然后,将路径按'/'分割为各个部分,逐个处理:

  • 遇到'.'时,将其视为进入当前目录的子目录,直接将该路径添加至栈中。
  • 遇到'..'时,如果栈不为空,则弹出栈顶元素,表示回到上一层目录。
  • 遇到其他路径部分,则将其添加至栈中。
  • 最终,栈中包含的路径部分按顺序连接起来即为简化后的路径。例如,处理路径"/a/./b/../../c/"的过程:

    • 开始时,栈为空。
    • 处理"a",将"a"添加至栈,栈为["a"]。
    • 处理".",忽略。
    • 处理"b",将"b",栈为["a", "b"]。
    • 处理"..",弹出"b",栈为["a"]。
    • 处理"c",将"c",栈为["a", "c"]。

    连接栈元素得到"/a/c"。但如果没有遇到'..'且栈为空,比如路径为"/../",则返回"/"。

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

    转载地址:http://klgyk.baihongyu.com/

    你可能感兴趣的文章
    java教育辅导班信息网(ssm)
    查看>>
    DDNS动态域名无固定IPSEC配置实战
    查看>>
    DELL笔记本UEFI+GPT安装window10与Ubuntu双系统
    查看>>
    EasyUi的使用与代码编写(一)
    查看>>
    Ehcache Java开源缓存框架
    查看>>
    el-select下拉框修改背景色
    查看>>
    ElasticSearch - 基于 JavaRestClient 操作索引库和文档
    查看>>
    ElasticSearch - 索引库和文档相关命令操作
    查看>>
    elasticsearch 7.7.0 单节点配置x-pack
    查看>>
    Elasticsearch 之(16)_filter执行原理深度剖析(bitset机制与caching机制)
    查看>>
    Elasticsearch 时区问题
    查看>>
    Elasticsearch7.3.1启动指定JDK11
    查看>>
    Elasticsearch下载安装
    查看>>
    Elasticsearch入门教程(Elasticsearch7,linux)
    查看>>
    ElasticSearch设置字段的keyword属性
    查看>>
    elasticsearch配置文件里的一些坑 [Failed to load settings from [elasticsearch.yml]]
    查看>>
    Elasticsearch面试题
    查看>>
    element ui 时间日期选择器 el-date-picker 报错 Prop being mutated “placement“
    查看>>
    element 如何使用自定义icon图标
    查看>>
    element-plus修改主题颜色
    查看>>