基礎算法----實現反轉字符串

前言

字符串反轉是一道經典的算法題,思想比較簡單:git

  1. 數組的第一位和最後一位互換;
  2. 數組第二位和倒數第二位互換;
  3. ......
  4. 遞歸完結條件爲取到中間值:start == end;

實現

string str = "1234";

char[] arr = str.ToArray();
int start = 0;
int end = arr.Length-1;

#region 反轉
static void rollback(char[] arr, int start, int end)
{
            /**
            * 分紅兩部分看:排列完成,待排列
            *
            * start和end部分爲排列完成,start+1以後爲待排列,最後end和start置換。
            */
    while (end > start)//排列次數,是整個數組的長度
    {
        char temp = arr[start];
        for (int i = start + 1; i <= end; i++)
        {
            arr[i - 1] = arr[i];
        }
        arr[end] = temp;
        end--;
    }

    for (int i = 0; i < arr.Length; i++)
    {
        System.Console.Write(arr[i]);
    }
    System.Console.Write("\n");
}
#endregion

結果

反轉結果

源碼

http://git.oschina.net/aspnet/Suan-Fa算法

相關文章
相關標籤/搜索