fn main() { println!("Hello, world!"); let tests = [ ("a123bc34d8ef34", 3), ("leet1234code234", 2), ("a1b01c001", 1), ("035985750011523523129774573439111590559325a1554234973", 2) ]; for test in tests { println!("{:?} is {} should be {}", test.0, Solution::num_different_integers(test.0.to_string()), test.1); } } struct Solution; use std::collections::HashSet; impl Solution { pub fn num_different_integers(word: String) -> i32 { let result = unsafe { word.as_bytes() }.split(u8::is_ascii_alphabetic) .filter(|x| !x.is_empty()) .map(|mut x| {while x.starts_with(b"0") {x = x.strip_prefix(b"0").unwrap(); } x}) // .map(|x| x.iter().rev().enumerate().fold(0, |acc, (i,&v)| acc + (v as u32 -48) * 10_u32.pow(i as u32))) .collect::>(); println!("{result:?}"); result.len() as i32 } }