Java C++题解leetcode1598文件夹操作日志搜集器

 更新时间:2022年09月29日 16:06:13   作者:AnjaVon  
这篇文章主要为大家介绍了Java C++题解leetcode1598文件夹操作日志搜集器示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

题目要求

思路:模拟

  • 根据日志判断目前在哪一级子文件夹即可,级数就等于返回时的步数,主文件夹级数初始为000:
    • xl:级数+1+1+1;
    • ./:级数不变;
    • ../:级数−1-1−1。

Java

class Solution {
    public int minOperations(String[] logs) {
        int res = 0;
        for (String l : logs) {
            if (l.equals("../")) // 返回父级
                res = Math.max(0, res - 1);
            else if (!l.equals("./")) // 向下进入
                res++;
        }
        return res;
    }
}
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

C++

class Solution {
public:
    int minOperations(vector<string>& logs) {
        int res = 0;
        for (auto & l : logs) {
            if (l == "../") // 返回父级
                res = max(0, res - 1);
            else if (l != "./") // 向下进入
                res++;
        }
        return res;
    }
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

Rust

impl Solution {
    pub fn min_operations(logs: Vec<String>) -> i32 {
        logs.into_iter().fold(0, |mut res, l| {
            if l == "../" { // 返回父级
                if res > 0 {
                    res -= 1;
                }
            }
            else if l != "./" { // 向下进入
                res += 1;
            }
            res
        })
    }
}
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

总结

超级简单模拟题【水了一篇】,不要考虑怎么回去,直接看怎么去的计算就可以了【又是逆向思维……】。

以上就是Java C++题解leetcode1598文件夹操作日志搜集器的详细内容,更多关于Java C++ 文件夹操作日志搜集器的资料请关注脚本之家其它相关文章!

相关文章

  • 深入理解堆排序及其分析

    深入理解堆排序及其分析

    本篇文章是对堆排进行了详细的分析以及介绍,需要的朋友参考下
    2013-05-05
  • C++实现推箱子小游戏

    C++实现推箱子小游戏

    这篇文章主要为大家详细介绍了C++实现推箱子小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • Qt控件点击消息获取的方法详解

    Qt控件点击消息获取的方法详解

    本文将利用Qt中的QLabel、QPushButton这两个控件,为大家详细介绍一下Qt控件点击消息获取的方法,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-06-06
  • C++快速排序算法简明理解

    C++快速排序算法简明理解

    快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影
    2022-05-05
  • C++、Qt分别读写xml文件的方法实例

    C++、Qt分别读写xml文件的方法实例

    Qt提供了QDomElement 类用于完成对xml文件的读取和写入,这篇文章主要给大家介绍了关于C++、Qt分别读写xml文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • C语言结构体的一些理解

    C语言结构体的一些理解

    这篇文章主要给大家介绍了关于C语言结构体的一些理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • VC下通过系统快照实现进程管理的方法

    VC下通过系统快照实现进程管理的方法

    这篇文章主要介绍了VC下通过系统快照实现进程管理的方法,较为详细的讲述了VC下通过系统快照实现进程管理的原理与具体实现方法,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C/C++中的atan和atan2函数实例用法

    C/C++中的atan和atan2函数实例用法

    在本篇文章里小编给大家分享的是一篇关于C/C++中的atan和atan2函数实例用法相关内容,有兴趣的朋友们可以学习下。
    2020-02-02
  • 成员函数的重载、覆盖与隐藏详细解析

    成员函数的重载、覆盖与隐藏详细解析

    成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防
    2013-10-10
  • C语言中strlen()函数的使用详解

    C语言中strlen()函数的使用详解

    strlen函数是用来求字符串长度的函数,这个函数遇到‘\0’就会停止,且这个长度不包含‘\0’,这篇文章给大家介绍了C语言中strlen()函数的使用,感兴趣的朋友一起看看吧
    2024-02-02

最新评论