这篇文章主要为大家介绍了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++ 文件夹操作日志搜集器的资料请关注编程学习网其它相关文章!
沃梦达教程
本文标题为:Java C++题解leetcode1598文件夹操作日志搜集器
猜你喜欢
- Easyx实现扫雷游戏 2023-02-06
- C++ 数据结构超详细讲解顺序表 2023-03-25
- C语言手把手带你掌握带头双向循环链表 2023-04-03
- Qt计时器使用方法详解 2023-05-30
- C语言qsort()函数的使用方法详解 2023-04-26
- ubuntu下C/C++获取剩余内存 2023-09-18
- 详解C语言中sizeof如何在自定义函数中正常工作 2023-04-09
- c++ const 成员函数,返回一个 const 指针.但是返回的指针是什么类型的 const? 2022-10-11
- 我应该为我的项目使用相对包含路径,还是将包含目录放在包含路径上? 2022-10-30
- C语言详解float类型在内存中的存储方式 2023-03-27
