Write a method that takes
an array of characters and reverses the
letters in place.
Why an array of
characters instead of a string?
The goal of this
question is to practice manipulating strings
in place. Since we're modifying the
input, we need
a mutable
type
like an array,
instead
of C#'s
immutable strings.
In general, an in-place algorithm will require swapping elements.
We swap the first and last characters, then the second and second-to-last characters, and so on until we reach the middle.
public static void Reverse(char[] arrayOfChars)
{
int leftIndex = 0;
int rightIndex = arrayOfChars.Length - 1;
while (leftIndex < rightIndex)
{
// Swap characters
char temp = arrayOfChars[leftIndex];
arrayOfChars[leftIndex] = arrayOfChars[rightIndex];
arrayOfChars[rightIndex] = temp;
// Move towards middle
leftIndex++;
rightIndex--;
}
}