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
- use std::char;
- use std::u64;
- fn g(x: u64) -> u64 {
- let s = x.to_string();
- let s = s
- .chars()
- .map(|c| c.to_digit(10).unwrap())
- .group_by(|&k| k)
- .into_iter()
- .fold(String::new(), |mut acc, (k, group)| {
- let n = group.count().to_string();
- let k = char::from_digit(k, 10).unwrap();
- acc.push_str(&n);
- acc.push(k);
- acc
- });
- u64::from_str_radix(&s, 10).unwrap()
- }
- fn main() {
- assert_eq!(221311, g(2231));
- assert_eq!(1411213, g(4222222222223));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement