## DEV Community 👩‍💻👨‍💻 is a community of 916,270 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

# Valid Numeric Anagram

Given 2 postive integers, write a function to determine if they have the same number of repeated / non-repeated elements.

Thoughts:

• Since this question uses numbers instead of string it is possible to employ some JS tricks to get the individual digits
• we could stringify first and get the character in each position
• OR we could use mathematical formula to get the same result
• The mathematical method employs the same trick as in Radix Sort
• Employ the same mathematical tactic to practice since it is the more difficult solution
• Stringify method is simpler but is hard to translate over to other languages as a solution
``````function getNumOfDigits(num) {
if (num === 0) return 1;
return Math.floor(Math.log10(num)) + 1;
}
function getDigitByPos(num, pos) {
if (num === 0) return 0;
return Math.floor(num / Math.pow(10, pos)) % 10;
}

function ValidNumericAnagram(numX, numY) {
if (getNumOfDigits(numX) !== getNumOfDigits(numY)) return false;

let digitCounter = {};
let limit = getNumOfDigits(numX);
for (let i=0; i<limit; i++) {
const digit = getDigitByPos(numX, i);
if (digitCounter[digit] === undefined) {
digitCounter[digit] = 0
}
digitCounter[digit]++;
}

for (let i=0; i<limit; i++) {
const digit = getDigitByPos(numY, i);
if (digitCounter[digit] === undefined) {
return false;
}
digitCounter[digit]--;
}

return true;
}
``````

## 🌚 Friends don't let friends browse without dark mode.

Sorry, it's true.