Longest Absolute File Path LeetCode solution in Rust

1
impl Solution {
2
pub fn length_longest_path(input: String) -> i32 {
3
let split: Vec<&str> = input.split('\n').collect();
4

5
let mut stack: Vec<(usize, &str)> = vec![];
6
let mut ans = 0;
7

8
for s in split {
9
let mut lvl = 0;
10
for ch in s.chars() {
11
if ch == '\t' {
12
lvl += 1;
13
} else {
14
break;
15
}
16
}
17
let fname = &s[(lvl as usize)..];
18

19
while stack.len() > 0 && stack[stack.len() - 1].0 >= lvl {
20
stack.pop();
21
}
22
stack.push((lvl, fname.clone()));
23

24
if fname.contains('.') {
25
let v = stack
26
.clone()
27
.into_iter()
28
.map(|(_, s)| s.clone().to_string())
29
.collect::<Vec<String>>()
30
.join("/");
31

32
ans = ans.max(v.len() as i32);
33
}
34
}
35

36
ans
37
}
38
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0