'Function to check if a given number do contain les than two different digits
I want to implement a function to check if a given number do contain les than two different digits, that are called duodigits
For example :
12 , 110 , -33333 : are all duodigits , since they have no more than two different digits 102 : is not a duodigit since his digits ; 1 and 0 and 2 are three different digits
How may I implement a method , which may iterate and check if it's a duodgits or not and return true or false as result
Solution 1:[1]
Here is how I would do it:
/**
* Checks if a number is a duodigit.
* @param {number} num
* @returns {boolean}
*/
function isDuodigit(num) {
return new Set(Math.abs(num).toString()).size <= 2;
}
Solution 2:[2]
If you want to do it without a set or string conversion.
function isDuoDigit(num){
num = Math.abs(num);
let first = '', second = '';
while (num > 0) {
let digit = num % 10;
if(first === '')
first = digit
else if(second === '')
second = digit
else if(first !== digit && second !== digit)
return false;
num = Math.trunc(num / 10);
}
return true;
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ben |
| Solution 2 | Turan |
