Problem
My Solution
success
function findRange(num) {
const strNum = num.toString();
let [maximal, isMaxDone, minimal, isMinDone] = ['', false, '', false];
if (strNum.split('').every((n) => +n === 1) && !isMinDone) {
minimal = num;
isMinDone = true;
}
if (strNum.split('').every((n) => +n === 9)) {
maximal = num;
isMaxDone = true;
}
for (let i = 0; i < strNum.length; i++) {
if (+strNum[i] !== 9 && !isMaxDone) {
let searchReg = new RegExp(strNum[i], 'gi');
maximal = strNum.replace(searchReg, 9);
isMaxDone = true;
}
if (+strNum[i] > 1 && !isMinDone) {
if (i === 0) {
let searchReg = new RegExp(strNum[i], 'gi');
minimal = strNum.replace(searchReg, 1);
isMinDone = true;
} else {
let searchReg = new RegExp(strNum[i], 'gi');
minimal = strNum.replace(searchReg, 0);
isMinDone = true;
}
}
if (+strNum[0] === 1 && +strNum[i] !== 1 && !isMinDone) {
let searchReg = new RegExp(strNum[i + 1], 'gi');
minimal = strNum.replace(searchReg, 0);
isMinDone = true;
}
}
return +maximal - +minimal;
}