Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate itertools; // 0.8.0
- use itertools::Itertools; // 0.8.0
- fn g(x: u32) -> u32 {
- let s = x.to_string();
- s.chars()
- .map(|c| c.to_digit(10).unwrap())
- .into_iter()
- .group_by(|&x| x)
- .into_iter()
- .map(|(k, group)| (group.count() as u32, k))
- .fold(0, |acc, (repeats, digit)| acc * 100 + repeats * 10 + digit)
- }
- fn main() {
- println!("{:?} should be 221311", g(2231));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement