这道题类似LeetCode中的简化路径那道题,两个题思路差不多。
代码如下:
package com.test6.demo1;
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine();
System.out.println(Path("/home/"));
}
public static String Path(String path) {
String[] str = path.split("/");
Stack<String> S = new Stack<String>();
for (int i = 0; i < str.length; i++) {
if (".".equals(str[i]) || "".equals(str[i])) {
continue;
} else if ("..".equals(str[i])) {
if (!S.empty())
S.pop();
} else
S.push(str[i]);
}
StringBuilder arr = new StringBuilder();
while (!S.empty()) {
arr.insert(0, S.pop());
arr.insert(0, "/");
}
if (arr.length() == 0)
arr.append("/");
return arr.toString();
}
}