简化路径 ^.^ 2022/08/26

https://leetcode.cn/problems/simplify-path/
看到..是返回上一级这样的用法,瞬间就想到了用Stack,当然也可以自己处理,因为我用栈,然后效率并不高。还有一个就是正则,用来消除多个连续/使用的。
上代码


class Solution {
    public String simplifyPath(String path) {
        path = path.replaceAll("/+", "/");
        Stack stack = new Stack<>();
        List list = new ArrayList<>();
        String[] split = path.split("/");
        for (String s : split) {
            if (".".equals(s) || "".equals(s)) {
//                不做任何处理
            } else if ("..".equals(s)) {
                if(!stack.isEmpty()) {
                    stack.pop();
                }
            } else {
                stack.add(s);
            }
        }
        while (!stack.isEmpty()) {
            list.add(stack.pop());
        }
        Collections.reverse(list);
        return "/" + String.join("/", list);
    }
}

可能并没有到中等难度。或者要优化需要中等难度?

你可能感兴趣的:(简化路径 ^.^ 2022/08/26)