Skip to main content

An interview exercise #1

An exercise from Amadeus interview

/*
Input: number 2543
Output: index of the digit that is  needed to remove to get the maximum number from the original number

 [0]2: 543 -> It is a maximum, so answer is 0
 [1]5: 243
 [2]4: 253
 [3]3: 254
*/

function findIndexToGetMax(n) {
    if (n < 10) return null;

 let digits = n.toString().split('').map(d => parseInt(d));
 let current_n = digits[0];
 let pos_n = 0;

 for (let i = 1; i < digits.length; i++) {
  if (current_n < digits[i]) {
   return pos_n;
  } else {
   current_n = digits[i];
   pos_n = i;
  }
 }
 return pos_n;
}


let tests = {
 2526: 0,
 9526: 2,
 19: 0,
 10: 1,
 12345: 0,
 54321: 4
};
let expected_n;
let testedValue_n;

for (let key_s in tests) {
 if (!tests.hasOwnProperty(key_s)) continue;
 expected_n = tests[key_s];
 testedValue_n = findIndexToGetMax(parseInt(key_s));
 if (testedValue_n != expected_n) {
  console.log('Test %s failed, expected %s', key_s, expected_n); break;
 }
 // console.log('Test %s: value %s', key_s, expected_n);
}
console.log('All tests passed');

Comments