1
impl Solution {
2
pub fn appeal_sum(s: String) -> i64 {
3
let n = s.len();
4
let mut f = vec![0; n];
5
let mut last_pos = [-1; 26];
6

7
// println!("last_pos {:?}", last_pos);
8

9
for (i, c) in s.chars().enumerate() {
10
let char_id = c as usize - 'a' as usize;
11
let i2 = i as i64;
12
// println!("char id {}", char_id);
13
if i == 0 {
14
f[i] = 1;
15
last_pos[char_id] = i2;
16
continue;
17
}
18
f[i] += f[i - 1] + i2 - last_pos[char_id];
19
last_pos[char_id] = i2;
20
}
21

22
let ans = f.iter().sum();
23

24
ans
25
}
26
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0