Leetcode: Simplify Path
来源:互联网 发布:程序员出差一年 编辑:程序博客网 时间:2024/06/03 21:55
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:
Use stack to store each path name between "/". If ".." appears, pop the stack, if "." appears, do nothing, else push that path name into the stack. When this is done, send the names to a string, and add "/" between them.- 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) { if (path == null || path.length() == 0) { return path; } Stack<String> stack = new Stack<String>(); int i = 0; while (i < path.length()) { StringBuilder sb = new StringBuilder(); while (i < path.length() && path.charAt(i) != '/') { sb.append(path.charAt(i)); i++; } String temp = sb.toString(); if (!temp.isEmpty()) { if (temp.equals("..")) { if (!stack.isEmpty()) { stack.pop(); } } else if (!temp.equals(".")) { stack.push(temp); } } i++; } StringBuilder res = new StringBuilder(); while (!stack.isEmpty()) { res.insert(0, "/" + stack.pop()); } if (res.length() == 0) { return "/"; } return res.toString(); }}
0 0
- LeetCode: Simplify Path
- LeetCode Simplify Path
- LeetCode : Simplify Path
- [Leetcode] Simplify Path
- [leetcode] simplify path
- [LeetCode] Simplify Path
- leetcode 100: Simplify Path
- [leetcode]Simplify Path
- [LeetCode]Simplify Path
- [leetCode] Simplify Path
- [leetcode]Simplify Path
- [leetcode] Simplify Path
- [LeetCode] Simplify Path
- leetcode simplify path
- Leetcode: Simplify Path
- LeetCode题解:Simplify Path
- [LeetCode] Simplify Path
- LeetCode Simplify Path
- 第十周项目五之输出完数
- 第十一周 oj平台 项目3 反序数
- k70学习笔记(2. xxx)
- Java中的自动包装和解包
- java输入system.in.read()
- Leetcode: Simplify Path
- 焕言技巧
- SVN使用规范
- linux kernel kbuild详解
- 《代码大全》读后感
- Cocos2d-X3.0 刨根问底(六)----- 调度器Scheduler类源码分析
- Qt5菜鸟入门(4):使用QSlider创建滑动条
- 一种简单的边界提取思路Matlab实现
- 方差分析公式