字符串反轉是一道經典的算法題,思想比較簡單: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