题目
题解
代码
import java.util.*;
public class code71 {
public static String simplifyPath(String path) {
Stack<String> stack = new Stack<String>();
for (String item : path.split("/")) {
// System.out.println("item: " + item);
if (item.equals("..")) {
if (!stack.isEmpty()) {
stack.pop(); // "/.." 弹出
}
} else if (!item.isEmpty() && !item.equals(".")) {
stack.push(item); // "/abc" 压入
}
// "/." 无动作
}
String res = "";
for (String str : stack) { // 从 stack 中的第一个元素遍历到最后一个元素
// System.out.println("str: " + str);
res = res + "/" + str;
}
if (res.isEmpty()) {
return "/"; // 只有一个 "/" 的情况下, 也就是根目录的情况,若是根目录,则不能去掉。
} else {
return res;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
String path = sc.nextLine();
String res = simplifyPath(path);
System.out.println(res);
}
sc.close();
}
}