博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]Simplify Path
阅读量:4980 次
发布时间:2019-06-12

本文共 1281 字,大约阅读时间需要 4 分钟。

题目说明

Given an absolute path for a file (Unix-style), simplify it.

For example,

path = "/home/", => "/home"
path = "/a/./b/../../c/", => "/c"

Corner Cases:

Did you consider the case where path = "/../"?

In this case, you should return "/".

Another corner case is the path might contain multiple slashes '/' together, such as "/home//foo/".

In this case, you should ignore redundant slashes and return "/home/foo".

思路

本题就是对输入的字符串逐个处理的过程,但是要注意两个特殊情况,(1)如果在根目录下输入..,则仍在根目录,而不是跳到上级目录。(2)如果有两个分隔符在一块的话就当做一个分隔符处理。我们只要将输入字符串用”/”分割开来得到一个字符串数组,然后对这个数组内的元素依次处理即可。作者新建了一个Path类,该类包含了一个变量按顺序保存了所有到当前路径的目录名称,提供了一个方法对新输入的字符串进行处理,如果当前路径是根路径,遇到..就不做处理(情况1)。如果新来的字符串是”.”或者空(情况2)也不做处理。其他情况下遇到..删除最顶层目录。遇到普通目录新加一个目录。最后输出结果即可。

代码

import java.util.ArrayList;class Path{   private ArrayList
paths=new ArrayList<>(); public void ParseNewDir(String dir) { if(dir.equals("")||dir.equals(".")||(dir.equals("..")&&paths.size()==0)) { return; } if(dir.equals("..")) { paths.remove(paths.size()-1); } else { paths.add(dir); } } public String GetFullDir() { if(paths.size()==0) return "/"; StringBuilder sb=new StringBuilder(); for(int i=0;i

 

转载于:https://www.cnblogs.com/developerY/p/Simplify_Path.html

你可能感兴趣的文章
Linux系统下搭建FTP/SFTP服务器
查看>>
获取手机信息(UIDevice、NSBundle、NSLocale)
查看>>
函数sprintf真好用
查看>>
网络欺诈防范
查看>>
JAVA入门——Generic/泛型
查看>>
【转】iOS笔记-自定义控件(OC)
查看>>
MySQL limit 分页查询数据库
查看>>
开发遇到的问题---【人民医院健康项目】
查看>>
fiddler手机安装证书报错 无法安装该证书 因为无法读取该证书文件
查看>>
jQuery图片上传前先在本地预览
查看>>
css框架,一把锋利的剑
查看>>
模板—插头dp(Ural 1519 Formula 1)
查看>>
浏览器缓存
查看>>
JQ应用第3款:返回顶部、底部、微信、反馈我们共存
查看>>
【安全】requests和BeautifulSoup小试牛刀
查看>>
集群高可用之lvs
查看>>
201521123018 《Java程序设计》第1周学习总结
查看>>
[翻译] PJR Signature View
查看>>
编写带有点击特效的UIButton
查看>>
[翻译] AnimatedPath 动画路径(持续更新)
查看>>