题目描述
解答方法
使用栈或者双端队列
将字符串以/分割划分为各个小的字符串之后,存入栈或者队列中,遇见.不用管不用入队,遇见…将栈尾或队尾元素出队,然后从头开始拼接字符串即可。
其实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();
}
}
该博客介绍了如何使用栈解决字符串路径简化的问题,具体涉及Linux目录层级的概念,并提供了Java代码实现,通过遍历字符串,遇到'.'忽略,遇到'..'则弹出栈顶元素,其余部分入栈,最后将栈内元素按路径格式组合成简化后的路径。
1472

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



