【LeetCode】71. Simplify Path
来源:互联网 发布:刺客信条周边淘宝 编辑:程序博客网 时间:2024/06/06 06:39
问题描述
https://leetcode.com/problems/simplify-path/#/description
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”.
算法
使用spli('/'))
切割字符串,如/a/./b/../../c/
切割为:['a','.','b','..','.','c','']
,然后就好办了。使用一个栈来存储路径,然后遇到['.','']
就跳过去,遇到'..'
就将栈的最近元素弹出。
代码
public String simplifyPath(String path) { Stack<String> stack = new Stack<>(); for(String dir:path.split("/")) { if("..".equals(dir)) { if(!stack.isEmpty()) stack.pop(); } else if(".".equals(dir)) { continue; } else { if(!"".equals(dir)) { stack.push(dir); } } } String r = ""; for(String dir:stack) { r = r + "/" + dir; } return "".equals(r)?"/":r; }
阅读全文
1 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
- intent.setFlags方法中的参数值含义
- 【HDU5072】Coprime-补集转化+容斥原理+质因数分解
- JavaWeb中的监听器和过滤器
- POJ 1634 Who's the boss? 笔记
- flask的redirect()方法,abort()方法,response.set_cookie()
- 【LeetCode】71. Simplify Path
- 【白兔兔】TiKZ画固定汇率制度下的货币政策图
- Python 100例
- JDNI的运用?
- 反射
- FZU 2252 Yu-Gi-Oh!【思维+枚举】
- 完整java开发中JDBC连接数据库代码和步骤
- opencv中detectMultiScale函数的使用
- Asset数据库的使用场景