[LeetCode] 541. Reverse String II

反转字符串二。题意跟版本一很接近,多一个限制条件K。需要反转每2K个字符,如果剩下的字符长度不足,就整个反转他们。例子,

Example:

Input: s = "abcdefg", k = 2
Output: "bacdfeg"

这个题出的不是很好。题目不难但是题意讲的非常绕,差评很多。直接给代码了,

时间O(n)

空间O(n) - 因为convert成了数组

 1 /**
 2  * @param {string} s
 3  * @param {number} k
 4  * @return {string}
 5  */
 6 var reverseStr = function (s, k) {
 7     let t = s.split('');
 8     for (let i = 0; i < s.length; i += 2 * k) {
 9         let start = i;
10         let end = i + k - 1;
11         while (start < end) {
12             const temp = t[start];
13             t[start] = t[end];
14             t[end] = temp;
15             start++;
16             end--;
17         }
18     }
19     return t.join('');
20 };

猜你喜欢

转载自www.cnblogs.com/aaronliu1991/p/12220090.html