反转字符串 II-LeetCode#541

给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。

如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。
 

示例 1:

输入:s = “abcdefg”, k = 2
输出:”bacdfeg”


示例 2:

输入:s = “abcd”, k = 2
输出:”bacd”
 

代码:

/**
 * @param {string} s
 * @param {number} k
 * @return {string}
 */
var reverseStr = function(s, k) {
    let list = [];
    let total = s.split("");
    let length = total.length / k;
    for(let i = 0; i < length; i++) {
        let arr = total.slice(i * k, i * k + k);
        if (i % 2 == 0) {
            arr.reverse()
            list = list.concat(arr);
        } else {
            list = list.concat(arr);
        }
    }
    return list.join("");
};

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注