1598. Crawler Log Folder LeetCode Solution
In this guide, you will get 1598. Crawler Log Folder LeetCode Solution with the best time and space complexity. The solution to Crawler Log Folder problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Crawler Log Folder solution in C++
- Crawler Log Folder solution in Java
- Crawler Log Folder solution in Python
- Additional Resources
Problem Statement of Crawler Log Folder
The Leetcode file system keeps a log each time some user performs a change folder operation.
The operations are described below:
“../” : Move to the parent folder of the current folder. (If you are already in the main folder, remain in the same folder).
“./” : Remain in the same folder.
“x/” : Move to the child folder named x (This folder is guaranteed to always exist).
You are given a list of strings logs where logs[i] is the operation performed by the user at the ith step.
The file system starts in the main folder, then the operations in logs are performed.
Return the minimum number of operations needed to go back to the main folder after the change folder operations.
Example 1:
Input: logs = [“d1/”,”d2/”,”../”,”d21/”,”./”]
Output: 2
Explanation: Use this change folder operation “../” 2 times and go back to the main folder.
Example 2:
Input: logs = [“d1/”,”d2/”,”./”,”d3/”,”../”,”d31/”]
Output: 3
Example 3:
Input: logs = [“d1/”,”../”,”../”,”../”]
Output: 0
Constraints:
1 <= logs.length <= 103
2 <= logs[i].length <= 10
logs[i] contains lowercase English letters, digits, '.', and '/'.
logs[i] follows the format described in the statement.
Folder names consist of lowercase English letters and digits.
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(1)
1598. Crawler Log Folder LeetCode Solution in C++
class Solution {
public:
int minOperations(vector<string>& logs) {
int ans = 0;
for (const string& log : logs) {
if (log == "./")
continue;
if (log == "../")
ans = max(0, ans - 1);
else
++ans;
}
return ans;
}
};
/* code provided by PROGIEZ */
1598. Crawler Log Folder LeetCode Solution in Java
class Solution {
public int minOperations(String[] logs) {
int ans = 0;
for (final String log : logs) {
if (log.equals("./"))
continue;
if (log.equals("../"))
ans = Math.max(0, ans - 1);
else
++ans;
}
return ans;
}
}
// code provided by PROGIEZ
1598. Crawler Log Folder LeetCode Solution in Python
N/A
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.