您现在的位置是:首页 > 正文

71 Simplify Path

2024-02-01 00:01:21阅读 1

Given an absolute path for a file (Unix-style), simplify it.

For example,
path = "/home/", => "/home"
path = "/a/./b/../../c/", => "/c"

Corner Cases:

  • Did you consider the case where path = "/../"?
    In this case, you should return "/".
  • Another corner case is the path might contain multiple slashes '/' together, such as "/home//foo/".

  • In this case, you should ignore redundant slashes and return "/home/foo".

用Stack存有效path, 用set检查是否跳过.

class Solution {
    public String simplifyPath(String path) {
        Stack<String> d = new Stack<>();
        Set<String> skip = new HashSet<>(Arrays.asList("..", ".", ""));
        
        for (String dir : path.split("/")) {
            if (dir.equals("..") && !d.isEmpty())
                d.pop();
            else if (!skip.contains(dir))
                d.push(dir);
        }
        
        String res = "";
        for (String dir : d) {
            res += "/" + dir;
        }
        return res.isEmpty() ? "/" : res;
    }
}

网站文章

  • 计算机窗口菜单栏中的选项,电脑右键点击界面下拉菜单中的选项怎么删除啊?...

    要删除这些无用的右键菜单项,请按下述方法操作:1. 单击Windows的“开始”菜单,单击“运行”,在“打开”框中键入“regedit”,单击“确定”按钮,打开“注册表编辑器”窗口。2. 展开“HKE...

    2024-02-01 00:00:51
  • 猫为什么要抓老鼠

    鼠猖獗,菜市购花猫一只,甚矫健,回家养之。未及一月出现异象:此猫不与鼠为敌,视鼠若无睹,鼠偷食,猫仅睥睨之,仍以四四拍闲庭信步。忧虑,长此以往会否堕落至与鼠打情骂俏。饿之,果然奋起捕鼠,三日捕两鼠,奖汤姆牌高级猫粮一盒,猫喵喵……再过一月异象升级:此猫饱之则不捕鼠,饿之则戏鼠,兴趣盎然、捕而不食,专等高级“汤姆”猫粮。余大怒,责之,不予猫粮以饿其体肤壮其猫志,未及,猫冷眼看我,抓烂沙发决绝而去。于

    2024-02-01 00:00:45
  • css清除浮动无效,CSS清除浮动方法总结

    css清除浮动无效,CSS清除浮动方法总结

    清除浮动的原因假设一个 div 内部有个浮动的 div,当内部 div 的高度要比外层的父级 div 高度大时,将会导致父级 div 高度无法随着内部 div 的高度自适应,这是由于浮动元素已经脱离了...

    2024-02-01 00:00:37
  • (转)张一鸣10年面试过2000人:混得好的年轻人都有这 5 种特质!

    转:https://mp.weixin.qq.com/s?__biz=MjM5OTAzMjc4MA==&mid=2650052208&idx=1&sn=5cb9750aaaca392dec02e221...

    2024-02-01 00:00:08
  • BugKu: 粉色的猫

    BugKu: 粉色的猫

    这道题目涉及到了DNA编码,BPG图片格式,PDU编码,Piet编程语言,猫脸变化,一共是5个知识点,这道题让我受益良多,出题者水平真高啊!httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。

    2024-02-01 00:00:01
  • iOS组件化方案对比

    iOS组件化方案对比

    背景 随着公司业务的不断发展,项目的功能越来越复杂,各个业务代码耦合也越来越多,代码量也是急剧增加,传统的MVC或者MVVM架构已经无法高效的管理工程代码,因此需要用一种技术来更好地管理工程,而组件化(也可称为模块化)是一种能够解决代码耦合的技术。项目经过组件化的拆分,不仅可以解决代码耦合的问题,还可以增强代码的复用性,工程的易管理性等等。 市场上的方案: 方案一、url-block 这是...

    2024-01-31 23:59:53
  • 一般服务器的并发响应数量,服务器高并发?4个简单的处理方法!

    一般服务器的并发响应数量,服务器高并发?4个简单的处理方法!

    原标题:服务器高并发?4个简单的处理方法!高并发问题是大部分服务器都经历过的,由于资源的有限性,其同时处理请求的能力自然也有限制。当高并发出现时,服务端的处理和响应速度会大幅降低,更严重的会使服务器崩...

    2024-01-31 23:59:47
  • ai跟随路径_继《Dota 2》和《星际争霸》后,人类又在一款竞技游戏里败给了 AI...

    ai跟随路径_继《Dota 2》和《星际争霸》后,人类又在一款竞技游戏里败给了 AI...

    在很多竞技射击游戏中,你都能看到一种名为「夺旗模式」的玩法。它源于西方一项传统运动,玩家被组成两支小队,目标是把对方基地里的旗帜带回到自己基地中,同时也要保护自家旗子不被人抢走。规则看似很简单,可比起...

    2024-01-31 23:59:16
  • matlab求得未知周期函数的周期,遗传算法拟合微分方程中的未知参数,运行时间太长,且........

    %拟合微分方程参数function myprojectclear;clc;treal=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14];%微分方程的x的值yreal=[20.4...

    2024-01-31 23:59:10
  • html输入框光标离开事件,input使用v-model时,input从中间删除时光标跳到最后

    目前我这边的解决方法是使用string-replace-loader将vendor.js里的getVmData方法替换成:function getVmData (vm) {var res = getV...

    2024-01-31 23:59:02