反转字符串二。题意跟版本一很接近,多一个限制条件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 };