字符串简单1 种解法
#344反转字符串
原地反转字符数组,不能分配另一份字符数组。
#字符串#双指针
解题主线
01
首尾双指针交换后同时向中间移动,每个字符最多参与一次交换。
解法 1:首尾双指针
不断交换对称位置字符,直到指针相遇。
时间复杂度
O(n)
空间复杂度
O(1)
java
final class Solution {
public void reverseString(char[] s) {
int left = 0, right = s.length - 1;
while (left < right) {
char temporary = s[left];
s[left++] = s[right];
s[right--] = temporary;
}
}
}不断交换对称位置字符,直到指针相遇。
边界与易错点
- 循环条件是 left < right;相遇位置无需交换。
- 题目要求原地修改,不能只返回新字符串。
整理来源
由旧仓库源码复核、去重并整理;展示代码已按 Java 21 语义修正明显问题。
str/Q344_reverseString.java