LeetCode-541.反转字符串II

题目详解

相关链接

思路

  • 模拟字符串遍历,分段拼接字符串

看完代码随想录之后的想法

  • 可以将字符串先转化成数组,便于原地进行字符反转(同344.反转字符串),最后再转回字符串

实现过程中遇到的困难

代码

TypeScript
1
2
3
4
5
6
7
8
9
10
11
12
13
function reverseStr(s: string, k: number): string {
const res = s.split('')
for (let i = 0, len = res.length; i < len; i += k * 2) {
let left = i,
right = Math.min(i + k - 1, len - 1)
while(left < right) {
[res[left], res[right]] = [res[right], res[left]]
left++
right--
}
}
return res.join('')
}

时间复杂度:O(n)
空间复杂度:O(n)

收获

  • js中字符串是基本类型,不能直接修改,可转化为数组便于操作
-------- 本文结束 感谢阅读 --------
0%