问题
例子
思路
//->/
/.->/
/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