LeetCode第1598题 – 文件夹操作日志搜集器

126 views

题目

每当用户执行变更文件夹操作时,LeetCode 文件系统都会保存一条日志记录。

下面给出对变更操作的说明:

  • “../” :移动到当前文件夹的父文件夹。如果已经在主文件夹下,则继续停留在当前文件夹
  • “./” :继续停留在当前文件夹。
  • “x/” :移动到名为 x 的子文件夹中。题目数据保证总是存在文件夹 x

给你一个字符串列表logs,其中logs[i]是用户在ith步执行的操作。

文件系统启动时位于主文件夹,然后执行logs中的操作。
执行完所有变更文件夹操作后,请你找出 返回主文件夹所需的最小步数

解答

public int minOperations(String[] logs) {
    if (logs == null || logs.length == 0) {
        return 0;
    }

    Stack<String> stack = new Stack<>();
    for (String log : logs) {
        if (!log.endsWith("/")) {
            log += "/";
        }

        switch (log) {
        case "./":
            break;
        case "../":
            if (!stack.isEmpty()) {
                stack.pop();
            }

            break;
        case "/":
            while (!stack.isEmpty()) {
                stack.pop();
            }

            break;
        default:
            stack.push(log);
        }
    }

    return stack.size();
}

要点
比较简单。



若非注明,均为原创,欢迎转载,转载请注明来源:LeetCode第1598题 – 文件夹操作日志搜集器

关于 JackieAtHome

基层程序员,八年之后重新启航

此条目发表在 Java, LeetCode 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Protected with IP Blacklist CloudIP Blacklist Cloud