Backspace String Compare LeetCode solution in Rust

1
impl Solution {
2
pub fn backspace_compare(s: String, t: String) -> bool {
3
let mut s_chars: Vec<char> = s.chars().collect();
4
let mut t_chars: Vec<char> = t.chars().collect();
5

6
let k = Self::process_string(&mut s_chars);
7
let p = Self::process_string(&mut t_chars);
8

9
if k != p {
10
return false;
11
}
12

13
for i in 0..k {
14
if s_chars[i] != t_chars[i] {
15
return false;
16
}
17
}
18

19
true
20
}
21

22
fn process_string(chars: &mut Vec<char>) -> usize {
23
let chars_copy = chars.clone();
24
let mut k = 0;
25
for &c in chars_copy.iter() {
26
if c != '#' {
27
chars[k] = c;
28
k += 1;
29
} else if k > 0 {
30
k -= 1;
31
}
32
}
33
k
34
}
35
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0