71. Simplify Path
来源:互联网 发布:软件自动化测试流程 编辑:程序博客网 时间:2024/06/07 00:04
Given an absolute path for a file (Unix-style), simplify it.
For example,
path = "/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
click to show corner cases.
Corner Cases:
这道题需要用到栈。遍历path,不是“..”,“.”,和“”就入栈,遇到“..”就弹栈,最后遍历栈,组成字符串。代码如下:- 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"
.
public class Solution { public String simplifyPath(String path) { Deque<String> stack = new LinkedList<>(); Set<String> skip = new HashSet<>(Arrays.asList("..", ".", "")); for (String dir:path.split("/")) { if (dir.equals("..") && !stack.isEmpty()) { stack.pop(); } else if (!skip.contains(dir)) { stack.push(dir); } } String res = ""; for (String dir: stack) { res = "/" + dir + res; } return res.isEmpty()? "/": res; }}
0 0
- LeetCode 71. Simplify Path
- LeetCode --- 71. Simplify Path
- [Leetcode] 71. Simplify Path
- [leetcode] 71.Simplify Path
- 71.Simplify Path
- 71.Simplify Path
- 71. Simplify Path
- [leetcode] 71.Simplify Path
- 71. Simplify Path
- Leetcode 71. Simplify Path
- LeetCode 71. Simplify Path
- Leetcode 71. Simplify Path
- 71. Simplify Path LeetCode
- 71. Simplify Path
- 71. Simplify Path
- 71. Simplify Path
- 71. Simplify Path
- leetcode 71. Simplify Path
- CCF NOI1053 相似度
- CCF NOI1054 扫雷游戏
- 学习完git和github的总结
- [leetCode刷题笔记]494. Target Sum
- unity组件之应用与控制
- 71. Simplify Path
- Oracle merge into 批量操作可以支持重复记录
- 《人民的名义》观后有感,坚信党的正确领导,诬陷必定能够推翻
- 直接资金方放款 Direct money lending
- 93. Restore IP Addresses
- 读书指南
- 使用Jenkins配置自动化构建
- jenkins邮件配置
- Jenkins+Maven+SVN快速搭建持续集成环境