// 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
fun isPandigitalRange(num: Long, start: Int = 1, end: Int = 9): Boolean {
val str = num.toString()
// Build the expected digit string
val expected = (start..end).joinToString("") { it.toString() }
// Sort digits of the number
val sorted = str.toCharArray().sorted().joinToString("")
return sorted == expected
}
fun main() {
println(isPandigitalRange(123456789))
println(isPandigitalRange(1023456789, 0, 9))
println(isPandigitalRange(987654321))
println(isPandigitalRange(123456780))
println(isPandigitalRange(123456780))
println(isPandigitalRange(123455789))
println(isPandigitalRange(12345))
}
/*
run:
true
true
true
false
false
false
false
*/