Longest Absolute File Path LeetCode solution in C++

1
// Using Map O(300 + N)
2

3
class Solution {
4
public:
5
int lengthLongestPath(string input) {
6
input.push_back('\n');
7
vector<int> levels(301, 0);
8
int ans = 0;
9
int curr_tabs = 0;
10
bool is_file = false;
11
int curr_word_len = 0;
12
int total_len = 0;
13

14
for (char c : input) {
15
if (c == '\t') {
16
curr_tabs++;
17
} else if (c == '\n') {
18
if (curr_tabs == 0) {
19
levels[0] = curr_word_len;
20
} else {
21
levels[curr_tabs] = levels[curr_tabs - 1] + curr_word_len;
22
}
23

24
if (is_file) {
25
ans = max(ans, levels[curr_tabs] + curr_tabs);
26
// levels[curr_tabs] = 0;
27
}
28
curr_tabs = 0;
29
is_file = false;
30
curr_word_len = 0;
31
} else if (c == '.') {
32
is_file = true;
33
curr_word_len++;
34
} else {
35
curr_word_len++;
36
}
37
}
38
return ans;
39
}
40
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0