Microsoft | Online Assessment 2019

Hi!

Last week I had an online assessment with Microsoft, I took a screenshot of one of the questions (below), also included my solution, however, I got rejected.

Could you please give me some hints on how can I improve?

image

My solution was the following:

  • It just shifts the positions depending on the given format
  • Time complexity = O(n)
  • Memory = O(1)
void Reformat(string[] phoneNumbers)
{
	var formatted = new StringBuilder(12);
	for (var i = 0; i < phoneNumbers.Length; i++)
	{
		var number = phoneNumbers[i];
		var hasDashes = number[3] == '-';

		formatted.Clear();

		//Area code
		formatted.Append(hasDashes ? number[4] : number[3]);
		formatted.Append(hasDashes ? number[5] : number[4]);
		formatted.Append(hasDashes ? number[6] : number[5]);

		formatted.Append('-');

		//Prefix
		formatted.Append(number[0]);
		formatted.Append(number[1]);
		formatted.Append(number[2]);

		formatted.Append('-');

		//Line number
		formatted.Append(hasDashes ? number[8] : number[6]);
		formatted.Append(hasDashes ? number[9] : number[7]);
		formatted.Append(hasDashes ? number[10] : number[8]);
		formatted.Append(hasDashes ? number[11] : number[9]);

		phoneNumbers[i] = formatted.ToString();
	}
}

Many thanks for the help! :)

Comments (15)