diff options
| author | Benjamin Andre <benjaminandre23@gmail.com> | 2025-07-07 21:34:10 +0200 |
|---|---|---|
| committer | Benjamin Andre <benjaminandre23@gmail.com> | 2025-07-07 21:39:40 +0200 |
| commit | e847004fdd91d52b376edd21c612724cb3d0733a (patch) | |
| tree | 9f5541d027d8b5b7e35b1e3a676e1239ab86e801 /challenge-329/benjamin-andre/rust | |
| parent | bd7fce4bd5d085c209a213f2daca1e79799c9e87 (diff) | |
| download | perlweeklychallenge-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-x | challenge-329/benjamin-andre/rust/ch-1.rs | 22 |
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]); +} |
