leetcode541

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

原文地址:https://www.cnblogs.com/asenyang/p/6732539.html