Given an absolute path for a file (Unix-style), simplify it.
For example, path = “/home/”, => “/home” path = “/a/./b/../../c/”, => “/c” click to show corner cases.
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".
Solution:
public class Solution {
public String simplifyPath(String path) {
Stack<String> stack = new Stack<>();
for(String s : path.split("/")){
if(s.equals("..")){
if(stack.size()>0) stack.pop();
} else if(s.equals(".")){
continue;
} else{
if(s.length()!=0) stack.push(s);
}
}
System.out.println(stack.toString());
String ans = "";
while(stack.size()>0){
ans = "/" + stack.pop() + ans;
}
return ans.length()==0 ? "/" : ans;
}
}