难度:简单

    题目描述:
    给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。

    示例:

    1. 输入: s = "abcdefg", k = 2
    2. 输出: "bacdfeg"

    解题思路:

    • 将s分割为2k长度字符串并存入数组
    • 遍历数组当item长度小于 k 个,全部反转,否则反转前k个字符串
      1. var reverseStr = function(s, k) {
      2. let arr = [];
      3. let i = 0;
      4. let str = "";
      5. while (i < s.length) {
      6. arr.push(s.slice(i, 2 * k + i));
      7. i = 2 * k + i;
      8. }
      9. arr.forEach((item) => {
      10. if (item.length <= 2 * k && item.length >= k) {
      11. str +=
      12. item.slice(0, k).split("").reverse().join("") +
      13. item.slice(k, item.length);
      14. } else {
      15. str += item.split("").reverse().join("");
      16. }
      17. });
      18. return str;
      19. };