From bed92f8d5ad7f4a6ebf54c02ed6f515dbe8a35cd Mon Sep 17 00:00:00 2001 From: Ayoub Ammar <162456634+kinoz01@users.noreply.github.com> Date: Mon, 18 Aug 2025 03:50:08 +0200 Subject: [PATCH] Update lib.rs simpler solution --- solutions/scytale_decoder/src/lib.rs | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/solutions/scytale_decoder/src/lib.rs b/solutions/scytale_decoder/src/lib.rs index 72d5282f..b0f9f465 100644 --- a/solutions/scytale_decoder/src/lib.rs +++ b/solutions/scytale_decoder/src/lib.rs @@ -1,20 +1,11 @@ pub fn scytale_decoder(s: String, letters_per_turn: u32) -> Option { - if s.is_empty() || letters_per_turn == 0 { - None - } else { - let mut decoded_s = "".to_string(); - let mut start = 0; - - while decoded_s.len() < s.len() { - decoded_s.push(s.chars().nth(start).unwrap()); - - let mut next = start + letters_per_turn as usize; - while next < s.len() { - decoded_s.push(s.chars().nth(next).unwrap()); - next += letters_per_turn as usize; - } - start += 1; - } - Some(decoded_s) + let k = letters_per_turn as usize; + if s.is_empty() || k == 0 { + return None; } + let mut res = vec![String::new(); k]; + for (i, c) in s.chars().enumerate() { + res[i % k].push(c); + } + Some(res.concat()) }