/**
注意点:字符串比较是否相等使用equals函数,不要使用==
Stack已经不被推荐使用,现在用Deque替代,双端队列
*/
class Solution {
public String simplifyPath(String path) {
String[] str = path.split("/");
Deque<String> sta = new ArrayDeque<>();
StringBuilder res = new StringBuilder();
for(int i = 0;i<str.length;i++){
if(str[i].equals(".") ||str[i].length()==0)continue;
if(str[i].equals("..") && sta.size()==0)continue;
if(str[i].equals("..") && sta.size()!=0){
sta.pop();
}else{
sta.push(str[i]);
}
}
if(sta.isEmpty())return "/";
while(!sta.isEmpty()){
res.insert(0,sta.pop());
res.insert(0,"/");
}
return res.toString();
}
}
原文:https://www.cnblogs.com/void-white/p/14118179.html