gpt4 book ai didi

javascript - 在大小为 k 的交替 block 中反转字符串

转载 作者:行者123 更新时间:2023-12-04 02:18:11 24 4
gpt4 key购买 nike

给定一个字符串和一个整数 k,您需要对从字符串开头算起的每段长度为 2k 个字符的前 k 个字符进行反转。如果剩下的字符少于 k 个,则将它们全部反转。如果小于2k但大于等于k个字符,则将前k个字符反转,其余保留原样。

例子

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

在上面的示例中,两个 “ab” 的第一个 block 被反转为 “ba”,两个 “ef” 的第三个 block 被反转code> 被反转为 "fe"

这是我的方法:

var reverseStr = function(s, k) {
for (let i = 0; i < k; i++) {
let temp = s[i];
s[i] = s[k - i - 1];
s[k - i - 1] = temp
}
return s
};

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

如何生成所需的输出?

最佳答案

一种选择是使用正则表达式来匹配最多 k 个字符,然后最多匹配 2k 个字符 - 然后使用替换函数仅反转初始 k 个字符:

var reverseStr = function(s, k) {
const pattern = new RegExp(`(.{1,${k}})(.{0,${k}})`, 'g');
return s.replace(pattern, (_, g1, g2) => [...g1].reverse().join('') + g2);
};

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

关于javascript - 在大小为 k 的交替 block 中反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60924892/

24 4 0
文章推荐: ionic-framework - 防止 ion-content 减少