您的位置:首页 > 其它

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

2017-02-27 00:00 375 查看

前言

字符串反转是一道经典的算法题,思想比较简单:

数组的第一位和最后一位互换;

数组第二位和倒数第二位互换;

......

递归完结条件为取到中间值: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  基本算法