MCPcopy Create free account
hub / github.com/StudyRust/leetcode_rust / decrypt

Function decrypt

1652-defuse-the-bomb.rs:1–26  ·  view source on GitHub ↗
(code: Vec<i32>, k: i32)

Source from the content-addressed store, hash-verified

1pub fn decrypt(code: Vec<i32>, k: i32) -> Vec<i32> {
2 if k == 0 { return vec![0; code.len()] }
3 let mut ret = vec![];
4 for i in 0..code.len() {
5 if k > 0 {
6 let tail = i + k as usize;
7 if tail <= code.len() - 1 {
8 ret.push(code[i+1..=tail].into_iter().sum::<i32>());
9 } else {
10 let tmp: i32 = &code[i+1..].into_iter().sum::<i32>() +
11 &code[0..tail-code.len()+1].into_iter().sum::<i32>();
12 ret.push(tmp);
13 }
14 } else {
15 let head = i as i32 + k; // i =1 k = -2
16 if head >= 0 {
17 ret.push(code[head as usize..i].into_iter().sum::<i32>());
18 } else {
19 let tmp: i32 = &code[0..i].into_iter().sum::<i32>() +
20 &code[(head + code.len() as i32) as usize..].into_iter().sum::<i32>();
21 ret.push(tmp);
22 }
23 }
24 }
25 ret
26}
27
28fn main() {
29 println!("{:?}", decrypt(vec![5, 7, 1, 4], 3));

Callers

nothing calls this directly

Calls 1

pushMethod · 0.45

Tested by

no test coverage detected