Problem 71

Posted by Ruizhi Ma on October 22, 2020

Solution URL

https://leetcode.com/submissions/detail/412039107/

代码

class Solution {
    public String simplifyPath(String path) {
        //Time: O(n)
        //Space: O(n)
        String tokens[] = path.split("/");

        Stack<String> s = new Stack<>();

        for(String token: tokens){
            //如果是'..',pop
            if(token.equals("..")){
                if(!s.isEmpty()){
                    s.pop();
                }
            }
            //如果不是".."且不是""
            else if(!token.equals(".") && !token.isEmpty()) s.push(token);
        }

        String res = "";
        //如果栈内还有元素
        if(s.isEmpty()) return "/";
        while(!s.isEmpty()){
            String temp = s.pop();
            res = "/" + temp + res;
        }

        return res;
    }
}