Given an absolute path for a file (Unix-style), simplify it.
For example,
path ="/home/", =>"/home"
path ="/a/./b/../../c/", =>"/c"
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".
import java.util.*;
public class Solution {
public String simplifyPath(String path) {
String[] dirs = path.split("/");
ArrayList<String> dirList = new ArrayList<>();
for(int i=0;i<dirs.length;i++){
if(dirs[i].equals(".") || dirs[i].equals("")){
continue;
}else if(dirs[i].equals("..")){
if(dirList.size()>0)
dirList.remove(dirList.size()-1);
}else{
dirList.add(dirs[i]);
}
}
StringBuilder res = new StringBuilder();
for(String dir:dirList){
res.append("/").append(dir);
}
if(res.length()==0){
res.append("/");
}
return res.toString();
}
}