字符串反转是一道经典的算法题,思想比较简单:git
- 数组的第一位和最后一位互换;
- 数组第二位和倒数第二位互换;
- ......
- 递归完结条件为取到中间值: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