Longest Absolute File Path LeetCode solution in Java

1
class Solution {
2
public int lengthLongestPath(String input) {
3
var stack = new ArrayDeque<Integer>();
4
int max = 0;
5
String[] lines = input.split("\n");
6
for (var line : lines) {
7
int tabs = countTabs(line);
8
while (tabs < stack.size()) {
9
stack.pop();
10
}
11
int current = stack.isEmpty() ? 0 : stack.peek();
12
int nameLength = line.length() - tabs;
13
if (isFilename(line)) {
14
max = Math.max(max, current + nameLength);
15
} else {
16
stack.push(current + nameLength + 1);
17
}
18
}
19
return max;
20
}
21

22
private int countTabs(String s) {
23
for (int i = 0; i < s.length(); i++) {
24
if (s.charAt(i) != '\t') return i;
25
}
26
return 0;
27
}
28

29
private boolean isFilename(String s) {
30
return s.lastIndexOf(".") != -1;
31
}
32
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0