字符串简单1 种解法

#344反转字符串

原地反转字符数组,不能分配另一份字符数组。

#字符串#双指针

解题主线

01

首尾双指针交换后同时向中间移动,每个字符最多参与一次交换。

解法 1首尾双指针

不断交换对称位置字符,直到指针相遇。

时间复杂度

O(n)

空间复杂度

O(1)

344. 反转字符串 · 首尾双指针
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