package Stack;
import java.util.Stack;
public class SimplifyPath_71 {
public static void main(String[] args) {
String s=simplifyPath("/../");
System.out.println(s);
}
// 分析过程:
// 先分割字符串,分割后有 ".." "." "" "路径名" 四种情况,
// 1、如果是".."并且stack不为空,则pop
// 2、如果是不是前三种情况,那么一定是路径名,则存入stack
// 3、最后将stack中的字符串拼接,并且加上/
public static String simplifyPath(String path) {
String res="";
String[] s = path.split("/");
Stack<String> stack = new Stack<>();
for(int i=0;i<s.length;i++) {
if(s[i].equals("..")&&!stack.isEmpty()) {
stack.pop();
}else if(!s[i].equals("")&&!s[i].equals(".")&&!s[i].equals("..")) {
stack.add(s[i]);
}
}
for(String ss:stack) {
res+="/"+ss;
}
if(res.equals("")) {
return "/";
}
return res;
}
}
71. 简化路径
最新推荐文章于 2021-05-14 15:06:10 发布