反转字符串 II

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

  • 输入:s = “abcdefg”, k = 2

  • 输出:”bacdfeg”

  • 输入:s = “abcd”, k = 2

  • 输出:”bacd”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var reverseStr = function(s, k) {
if(k == 1) return s
let result = ''
let temp = ''
let dobulek = 2 * k
for (let i = 0; i < s.length; i++) {
const element = s[i];
let kyu = i % dobulek
if(kyu == 0){
result += temp
temp = ''
}
if(kyu < k){
temp = element + temp
}else {
temp = temp + element
}
}

return result + temp
};