首页 > 代码库 > LeetCode——Simplify Path
LeetCode——Simplify Path
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"
.
原题链接:https://oj.leetcode.com/problems/simplify-path/
用一个栈来顺序存储比较方便。
public class SimplifyPath { public static void main(String[] args) { String ret = new SimplifyPath().simplifyPath("/a/./b/../../c/"); System.out.println("result:"+ret); } public String simplifyPath(String path) { String[] params = path.split("/"); Stack<String> stack = new Stack<String>(); for(String param : params){ if(param.equals("..")) stack.pop(); else if(!param.equals("..") && !param.equals(".") && !param.equals("")) stack.push(param); } StringBuilder builder = new StringBuilder(); for(String str :stack) builder.append("/"+str); return stack.isEmpty() ? "/":builder.toString(); } }
LeetCode——Simplify Path
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。