541. 反转字符串 II

leetcode链接:
https://leetcode.cn/problems/reverse-string-ii/

题目分析

注意审题!!!

根据题目要求中的 每 计数至2K个字符得知,存在反转的字符串的位置为 0 - (k-1)、 2k - (3k-1)、 4k 到 (5k-1)。。。。

方案一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution {
public String reverseStr(String s, int k) {
char[] sChar = s.toCharArray();
int n = sChar.length, left = 0;

// 将数据分段
do {
if ((left + k) >= n) {
func(sChar, left, n - 1);
} else {
func(sChar, left, left + k -1);
}
left = left + 2 * k;
} while( left < n );

return new String(sChar);
}

// 交换相关参数
public void func(char[] s, int left, int right) {
while (left < right) {
char temp = s[left];
s[left] = s[right];
s[right] = temp;

left++;
right--;
}
}
}

结果

解答成功:
执行耗时:0 ms,击败了100.00% 的Java用户
内存消耗:42.2 MB,击败了27.33% 的Java用户

分析

时间复杂度:
O( n )

空间复杂度:
O( )

方案二

1

较优方案

1


541. 反转字符串 II
http://yuanql.top/2023/06/14/02_leetcode/541. 反转字符串 II/
作者
Qingli Yuan
发布于
2023年6月14日
许可协议