[LeetCode] 71. Simplify Path Java
题目:
Given an absolute path for a file (Unix-style), simplify it.
For example,
path = "/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
题意及分析:给出一个unix的绝对路径,简化路径,.表示当前目录,../表示上级目录。使用一个Stack保存目录即可,遇到“”、“.”跳过;遇到“..”,若stack不为空弹出栈顶元素;遇到其他字符串直接入栈。
代码:
class Solution { public String simplifyPath(String path) { if(path.equals("/")) return path; String[] strings = path.split("/"); Stack<String > stack = new Stack<>(); for(int i=0;i<strings.length;i++){ if(strings[i].equals("") || strings[i].equals(".")) continue; else if(strings[i].equals("..")){ if(stack.size()>0) stack.pop(); }else stack.push(strings[i]); } if(stack.isEmpty()) return "/"; String res = ""; while(!stack.isEmpty()){ res = "/" + stack.pop() + res; } return res; } }