这个题目主要考察栈的用法:
public static String simplifyPath(String path) {
if(path == null || path.isEmpty()){
return "/";
}
Stack<String> stack = new Stack<>();
String[] split = path.split("/");
int length = split.length;
for(int i =0; i < length; i++){
String str = split[i];
if("".equals(str) || ".".equals(str)){
continue;
}else if("..".equals(str)){
if(!stack.isEmpty()){
stack.pop();
}
}else{
stack.push(str);
}
}
if(stack.isEmpty()){
return "/";
}
Iterator<String> iterator = stack.iterator();
StringBuilder sb = new StringBuilder();
while (iterator.hasNext()){
String rest = iterator.next();
sb.append("/").append(rest);
}
return sb.toString();
}