public class Solution { public string ReverseStr(string s, int k) { var len = s.Length; //记录k的倍数 //分出k的奇数倍和偶数倍 int beginIndex = 0; StringBuilder sb = new StringBuilder(); int MutiTimes = 0;//计算奇偶 do { //取出k个字符 var str = ""; if (beginIndex + k <= len) { str = s.Substring(beginIndex, k); } else { str = s.Substring(beginIndex); } if (MutiTimes % 2 == 0) { var charlist = str.Reverse(); foreach (var c in charlist) { sb.Append(c); } } else { sb.Append(str); } MutiTimes++; beginIndex += k;//每次增加k个字符长度 } while (beginIndex < len); Console.WriteLine(sb.ToString()); return sb.ToString(); } }
https://leetcode.com/problems/reverse-string-ii/#/description