基础算法----实现反转字符串

前言

字符串反转是一道经典的算法题,思想比较简单: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算法

相关文章
相关标签/搜索