71. [栈]简化路径

71. 简化路径

字符串 path 给出了文件的路径,每一级路径前都有 / 做分割,不难想到使用 path.split("\\/")方法对路径做一个预处理分割,接着再遍历分割后的字符串数组,将路径名存入栈中,.. 即模拟出栈,"", "." 不进行处理即可。

class Solution {
    public String simplifyPath(String path) {
        String[] paths = path.split("\\/");
        LinkedList<String> stack = new LinkedList<>();
        for(String p:paths){
            if(p.equals(".") || p.equals("")){
                continue;
            } else if(p.equals("..")){
                stack.pollLast();
            } else {
                stack.offer(p);
            }
        }
        // 如果栈为空,说明已经返回到根目录
        if(stack.isEmpty()){
            return "/";
        }
        StringBuffer sb = new StringBuffer();
        for(String s:stack){
            sb.append("/");
            sb.append(s);
        }
        return sb.toString();
    }
}

上一篇:深入理解SPDK之七: 常见问题排查C篇


下一篇:课时71.后代选择器(掌握)