Given an absolute path for a file (Unix-style), simplify it.
For example,
path="/home/"
, =>"/home"
path="/a/./b/../../c/"
, =>"/c"
tag: stack, deque
class Solution {
public String simplifyPath(String path) {
if (path == null || path.length() == 0) return "/";
LinkedList<String> list = new LinkedList<>();
for (String str : path.split("/")){
//System.out.println("str: " + str + " list: " + list.toString());
if (str.equals("..") && list.size() > 0){
list.removeLast();
}
else if (!str.equals("..") && !str.equals(".") && str != null && str.length() > 0){
list.add(str);
}
}
StringBuilder sb = new StringBuilder();
for (String str : list){
if (str == null || str.length() == 0) continue;
sb.append("/").append(str);
}
return sb.length() > 0 ? sb.toString() : "/";
}
}