541.反转字符串-ii

时游小于 1 分钟LeetCode

541.反转字符串-ii

/*
 * @lc app=leetcode.cn id=541 lang=typescript
 *
 * [541] 反转字符串 II
 */

// @lc code=start
function reverseStr(s: string, k: number): string {
	// 0~k-1反转,k~2k-1正常,2k~3k-1反转
	let n = s.length;
	if (n === 0) {
		return s;
	} else if (n < k) {
		return reverse(s, n);
	} else if (n < 2 * k) {
		return reverse(s, k);
	} else {
		return reverse(s.slice(0, 2 * k), k) + reverseStr(s.slice(2 * k), k);
	}
}

// 翻转
function reverse(s: string, num: number): string {
	let arr: string[] = s.split("");
	for (let i = 0, j = num - 1; i < j; i++, j--) {
		[arr[i], arr[j]] = [arr[j], arr[i]];
	}
	return arr.join("");
}

console.log(reverseStr("abcdefg", 2));

// @lc code=end

上次编辑于:
贡献者: 15327360835
Loading...