From 7b032a1ef448d24aafc1dfc21f13df6b9786a180 Mon Sep 17 00:00:00 2001 From: daviddoji Date: Sat, 9 May 2026 17:03:37 +0200 Subject: [PATCH] Ordenar por maximo en Rust --- src/Rust/002.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/Rust/002.rs diff --git a/src/Rust/002.rs b/src/Rust/002.rs new file mode 100644 index 0000000..f5aa823 --- /dev/null +++ b/src/Rust/002.rs @@ -0,0 +1,27 @@ +fn order_by_max_i32(lst: &[Vec]) -> Vec> { + let mut sorted_lst = lst.to_vec(); + sorted_lst.sort_by_key(|v| v.iter().max().cloned()); // stable sort by max element + + return sorted_lst +} + +fn order_by_max_str<'a>(lst: &[&'a str]) -> Vec<&'a str> { + let mut sorted_lst = lst.to_vec(); + sorted_lst.sort_by_key(|s| s.chars().max()); // stable sort by max char + + return sorted_lst +} + +fn main() { + let check = vec![vec![3,2], vec![6,7,5], vec![1,4]]; + println!("{:?}", order_by_max_i32(&check)); // [[3,2],[1,4],[6,7,5]] + + let check = vec![vec![1], vec![0,1]]; + println!("{:?}", order_by_max_i32(&check)); // [[1],[0,1]] + + let check = vec![vec![0,1], vec![1]]; + println!("{:?}", order_by_max_i32(&check)); // [[0,1],[1]] + + let check = vec!["este","es","el","primero"]; + println!("{:?}", order_by_max_str(&check)); // ["el","primero","es","este"] +}