How to reverse an array of characters without affecting the special characters in C#

1 Answer

0 votes
using System;

class Program
{
    static void reverse(char[] arr) { 
        int right = arr.Length - 1, left = 0; 
        
        while (left < right) { 
            if (!Char.IsLetter(arr[left])) 
                left++; 
            else if (!Char.IsLetter(arr[right])) 
                    right--; 
                 else { 
                    char tmp = arr[left];
                    arr[left] = arr[right];
                    arr[right] = tmp;
                    left++; 
                    right--; 
                 } 
        } 
    } 
    static void Main()
    {
        char[] arr = { 'a', '#', 'b', '$', '%', 'c', '&', '*', '(', 'd', 'e', 'f', '!' };
 
        reverse(arr); 
 
        Console.Write(arr);
    }
}



/*

run:

f#e$%d&*(cba!

*/

 



answered Jun 17, 2019 by avibootz
...