From 002fff8d1d076d33e91b513cd041f42282a82d30 Mon Sep 17 00:00:00 2001 From: daviddoji Date: Sun, 10 May 2026 18:58:26 +0200 Subject: [PATCH] Bandera tricolor en Rust --- src/Rust/003.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/Rust/003.rs diff --git a/src/Rust/003.rs b/src/Rust/003.rs new file mode 100644 index 0000000..0a6c7a6 --- /dev/null +++ b/src/Rust/003.rs @@ -0,0 +1,20 @@ +const ORDER: [&str; 3] = ["R", "A", "M"]; + +fn tricolor_flag<'a>(lst: &[&'a str]) -> Vec<&'a str> { + let mut ordered_lst = lst.to_vec(); + ordered_lst.sort_by_key(|s| { + ORDER + .iter() + .position(|&v| v == *s) + }); + + return ordered_lst +} + +fn main() { + let check = vec!["M","R","A","A","R","R","A","M","M"]; + println!("{:?}", tricolor_flag(&check)); // [R,R,R,A,A,A,M,M,M] + + let check = vec!["M", "R", "A", "R", "R", "A"]; + println!("{:?}", tricolor_flag(&check)); // [R,R,R,A,A,M] +} \ No newline at end of file