71. 简化路径
字符串 path
给出了文件的路径,每一级路径前都有 /
做分割,不难想到使用 path.split("\\/")
方法对路径做一个预处理分割,接着再遍历分割后的字符串数组,将路径名存入栈中,..
即模拟出栈,"", "."
不进行处理即可。
class Solution {
public String simplifyPath(String path) {
String[] paths = path.split("\\/");
LinkedList<String> stack = new LinkedList<>();
for(String p:paths){
if(p.equals(".") || p.equals("")){
continue;
} else if(p.equals("..")){
stack.pollLast();
} else {
stack.offer(p);
}
}
// 如果栈为空,说明已经返回到根目录
if(stack.isEmpty()){
return "/";
}
StringBuffer sb = new StringBuffer();
for(String s:stack){
sb.append("/");
sb.append(s);
}
return sb.toString();
}
}