Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Create your online store today with Shopify

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Disclosure: My content contains affiliate links.

43,693 questions

57,001 answers

573 users

How to check if a number is pandigital in Rust

1 Answer

0 votes
// A pandigital number is an integer that contains each digit from 0 to 9 
// at least once, with the condition that the leading digit must be nonzero

// for example, 1023456987 is a pandigital number 

fn is_pandigital_range(num: i64, start: u8, end: u8) -> bool {
    let s = num.to_string();

    // Build the expected digit string
    let expected: String = (start..=end)
        .map(|d| char::from(b'0' + d))
        .collect();

    // Sort digits of the number
    let mut digits: Vec<char> = s.chars().collect();
    digits.sort_unstable();
    let sorted: String = digits.into_iter().collect();

    sorted == expected
}

fn main() {
    println!("{}", is_pandigital_range(123456789, 1, 9));      
    println!("{}", is_pandigital_range(1023456789, 0, 9));      
    println!("{}", is_pandigital_range(987654321, 1, 9));      
    println!("{}", is_pandigital_range(123456780, 1, 9));      
    println!("{}", is_pandigital_range(123456780, 1, 9));      
    println!("{}", is_pandigital_range(123455789, 1, 9));      
    println!("{}", is_pandigital_range(12345, 1, 9));           
}




/*
run:

true
true
true
false
false
false
false

*/

 



answered Feb 25 by avibootz
...