Leetcode 71. Simplify Path
来源:互联网 发布:js获取页面停留时间 编辑:程序博客网 时间:2024/06/05 17:56
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:
- 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"
.
网址是被"/"隔开,对于网址的分析可以见这篇博客
http://www.cnblogs.com/springfor/p/3869666.html
如果遇见了"."或者分割的字符串为空,则跳过这个字符串,如果遇到“..”,然后就进行弹出堆栈的操作
code
public class Solution { public String simplifyPath(String path) { if(path == null || path.length() == 0) return path; Stack<String>stack = new Stack<String>(); String[] temRes = path.split("/"); for(int i = 0; i < temRes.length; i++){ if(temRes[i].equals(".") || temRes[i].length() == 0) continue; else if(temRes[i].equals("..")){ if(!stack.isEmpty()){ stack.pop(); } } else{ stack.push(temRes[i]); } } //I use two stack to reverse the make the order of the string the same with the original string Stack<String> reverse = new Stack<String>(); StringBuffer result = new StringBuffer(); while(!stack.isEmpty()){ reverse.push(stack.pop()); } while(!reverse.isEmpty()){ result.append("/" + reverse.pop()); } if(result.length() == 0) result.append("/"); return result.toString(); }}
0 0
- LeetCode 71. Simplify Path
- LeetCode --- 71. Simplify Path
- [Leetcode] 71. Simplify Path
- [leetcode] 71.Simplify Path
- [leetcode] 71.Simplify Path
- Leetcode 71. Simplify Path
- LeetCode 71. Simplify Path
- Leetcode 71. Simplify Path
- 71. Simplify Path LeetCode
- leetcode 71. Simplify Path
- LeetCode 71. Simplify Path
- LeetCode 71. Simplify Path
- Leetcode 71. Simplify Path
- [leetcode] 71. Simplify Path
- LeetCode 71. Simplify Path
- LeetCode - 71. Simplify Path
- [LeetCode] 71. Simplify Path
- leetcode 71. Simplify Path
- Creating Concurrency with Threads
- iOS程序猿之Git终端命令行语句整理
- spring配置计时器
- 企业网站建设需要注意的事项
- python 使用相对路径import 模块的方法
- Leetcode 71. Simplify Path
- xp中搭建php环境(安装apache并配置apache)
- poj 1177/USACO 5.5 Picture 线段树+离散化+扫描线
- Minor GC、Major GC和Full GC之间的区别
- KMDF中未分页内存的类型选择
- Spring MVC启动——initStrategies
- 【区间型DP】石子归并问题
- 提高 Linux 上 socket 性能
- +load +initialize