🌗 71. 简化路径

吞佛童子2022年10月10日
  • algorithm
  • Stack
小于 1 分钟

🌗 71. 简化路径

难度: 🌗

问题描述

img_1.png


解法

class Solution {
    public String simplifyPath(String path) {
        // 思路:
        // 借助 栈
        LinkedList<String> stack = new LinkedList<>();
        String[] array = path.split("/");
        int len = array.length;
        for(int i = 0; i < len; i ++) {
            String cur = array[i];
            if(cur.length() == 0) {
                continue;
            }
            // cur != ""
            if(cur.equals(".")) {
                continue;
            }
            if(cur.equals("..")) {
                if(!stack.isEmpty()) {
                    stack.removeLast();
                }
            } else {
                stack.addLast(cur);
            }
        }
        StringBuilder sb = new StringBuilder();
        sb.append("/");
        if(stack.isEmpty()) {
            return sb.toString();
        }
        while(!stack.isEmpty()) {
            sb.append(stack.removeFirst()).append("/");
        }
        sb.deleteCharAt(sb.length() - 1);
        return sb.toString();
    }
}

输出

img.png

上次编辑于: 2022/10/10 下午8:43:48
贡献者: liuxianzhishou