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++ 文件夹操作日志搜集器的资料请关注脚本之家其它相关文章!

相关文章

  • C++ 电话号码的字母组合功能实现

    C++ 电话号码的字母组合功能实现

    这篇文章主要介绍了C++ 电话号码的字母组合,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • C++空类默认函数详细解析

    C++空类默认函数详细解析

    如果你只是声明一个空类,不做任何事情的话,编译器会自动为你生成一个默认构造函数、一个拷贝默认构造函数、一个默认拷贝赋值操作符和一个默认析构函数
    2013-10-10
  • C++ 中约瑟夫环替换计数器m(数组解决)

    C++ 中约瑟夫环替换计数器m(数组解决)

    这篇文章主要介绍了C++ 中约瑟夫环替换计数器m(数组解决)的相关资料,需要的朋友可以参考下
    2017-05-05
  • 使用UDP协议实现单词翻译服务器

    使用UDP协议实现单词翻译服务器

    这篇文章主要为大家详细介绍了如何使用UDP协议实现英文单词翻译服务器,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2023-08-08
  • 详解C++动态内存管理

    详解C++动态内存管理

    这篇文章主要为大家详细介绍了C++中动态内存管理相关资料,文中示例代码讲解详细,对我们学习C++具有一定帮助,感兴趣的小伙伴快跟随小编一起学习
    2023-05-05
  • C语言fgetc和fputc函数用法详解(以字符形式读写文件)

    C语言fgetc和fputc函数用法详解(以字符形式读写文件)

    这篇文章主要介绍了C语言fgetc和fputc函数用法详解(以字符形式读写文件),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • matlab鸟群算法求解车间调度问题详解及实现源码

    matlab鸟群算法求解车间调度问题详解及实现源码

    这篇文章主要为大家介绍了matlab鸟群算法求解车间调度的问题分析及实现源码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02
  • C语言深入探究水仙花数与变种水仙花数代码

    C语言深入探究水仙花数与变种水仙花数代码

    求水仙花数和变种水仙花数是非常适合初学者学习的代码,其中包含的循环和逻辑方式等知识点。这既能起到对以往知识的复习,也可以学习到一种不同的逻辑思考方式
    2022-05-05
  • 在Visual Studio Code中使用CSSComb格式化CSS文件的教程

    在Visual Studio Code中使用CSSComb格式化CSS文件的教程

    这篇文章主要介绍了在Visual Studio Code中使用CSSComb格式化CSS文件,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • C++实现LeetCode(146.近最少使用页面置换缓存器)

    C++实现LeetCode(146.近最少使用页面置换缓存器)

    这篇文章主要介绍了C++实现LeetCode(146.近最少使用页面置换缓存器),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07

最新评论