aboutsummaryrefslogtreecommitdiff
path: root/challenge-329/benjamin-andre/rust
diff options
context:
space:
mode:
authorBenjamin Andre <benjaminandre23@gmail.com>2025-07-07 21:34:10 +0200
committerBenjamin Andre <benjaminandre23@gmail.com>2025-07-07 21:39:40 +0200
commite847004fdd91d52b376edd21c612724cb3d0733a (patch)
tree9f5541d027d8b5b7e35b1e3a676e1239ab86e801 /challenge-329/benjamin-andre/rust
parentbd7fce4bd5d085c209a213f2daca1e79799c9e87 (diff)
downloadperlweeklychallenge-club-e847004fdd91d52b376edd21c612724cb3d0733a.tar.gz
perlweeklychallenge-club-e847004fdd91d52b376edd21c612724cb3d0733a.tar.bz2
perlweeklychallenge-club-e847004fdd91d52b376edd21c612724cb3d0733a.zip
feat(329): completed challenge 1 in rust
Diffstat (limited to 'challenge-329/benjamin-andre/rust')
-rwxr-xr-xchallenge-329/benjamin-andre/rust/ch-1.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/challenge-329/benjamin-andre/rust/ch-1.rs b/challenge-329/benjamin-andre/rust/ch-1.rs
new file mode 100755
index 0000000000..4c069e3b8b
--- /dev/null
+++ b/challenge-329/benjamin-andre/rust/ch-1.rs
@@ -0,0 +1,22 @@
+#!/bin/sh
+//usr/bin/env rustc --test $0 -o kachow && ./kachow --nocapture; rm -f kachow ; exit
+
+use std::collections::HashSet;
+
+fn counter_integer(s: &str) -> Vec<i32> {
+ let mut res: Vec<i32> = s
+ .split(|c: char| !c.is_ascii_digit())
+ .filter_map(|num_str| num_str.parse().ok())
+ .collect::<HashSet<_>>()
+ .into_iter()
+ .collect();
+ res.sort();
+ res
+}
+
+#[test]
+fn example() {
+ assert_eq!(counter_integer("the1weekly2challenge2"), vec![1, 2]);
+ assert_eq!(counter_integer("go21od1lu5c7k"), vec![1, 5, 7, 21]);
+ assert_eq!(counter_integer("4p3e2r1l"), vec![1, 2, 3, 4]);
+}