题目描述
解答方法
使用栈或者双端队列
将字符串以/分割划分为各个小的字符串之后,存入栈或者队列中,遇见.不用管不用入队,遇见…将栈尾或队尾元素出队,然后从头开始拼接字符串即可。
其实Linux的目录层级采用的就是栈。
代码实现:
class Solution {
public String simplifyPath(String path) {
String[] strs=path.split("/");
StringBuilder result=new StringBuilder();
Stack<String> sta=new Stack<>();
for(String str:strs){
if(str.equals("")||str.equals(".")){
continue;
}
else if(str.equals("..")&&!sta.empty()){
sta.pop();
}
else if(!str.equals("..")){
sta.push(str);
}
}
for(String i:sta){
result.append("/"+i);
}
if(result.length()==0){
return "/";
}
return result.toString();
}
}