问题

例子

思路
//->/
/.->/
/a/..->/
最后一个不能是/
-
方法1
split("/")->"", “.”, “xx”, “…”
遍历数组arr,如果是"…",就把栈顶弹出,如果不是""和“."就放入栈 -
方法2
代码
//方法1
class Solution {
public String simplifyPath(String path) {
String[] arr = path.split("/");
StringBuilder sb = new StringBuilder();
Stack<String> stack = new Stack<>();
for(String s: arr) {
if(s.equals("..")) {
if(stack.size()>0)
stack.pop();
}else if(!s.equals("") && !s.equals(".")) {
stack.push(s);
}
}
if(stack.size()==0) return "/";
for(int i=0; i<stack.size(); i++) {
sb.append("/");
sb.append(stack.get(i));
}
return sb.toString();
}
}
//方法2

本文深入解析了文件路径简化算法的两种实现方法。首先介绍了通过split方法分割路径,并使用栈进行遍历处理,移除无效部分,如.和..。其次,提供了具体的Java代码实现,展示了如何有效地简化复杂的文件路径,使其符合规范。
822

被折叠的 条评论
为什么被折叠?



