2026-08-25 11:19:35 -04:00
|
|
|
---
|
|
|
|
|
title: '344. Reverse String'
|
|
|
|
|
description: Write a function that reverses a string. The input string is given as an array of characters s
|
2026-09-25 13:17:35 -04:00
|
|
|
icon: dot
|
2026-08-25 11:19:35 -04:00
|
|
|
sidebar:
|
|
|
|
|
label: 'Reverse String'
|
|
|
|
|
badge: 'Easy'
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
<Badge variant="accent">Two Pointers</Badge>
|
|
|
|
|
|
|
|
|
|
:::warning
|
|
|
|
|
You must do this by modifying the input array in-place with O(1) extra memory.
|
|
|
|
|
:::
|
|
|
|
|
|
|
|
|
|
### Example 1:
|
|
|
|
|
- Input: `s = ["h","e","l","l","o"]`
|
|
|
|
|
- Output: `["o","l","l","e","h"]`
|
|
|
|
|
|
|
|
|
|
### Example 2:
|
|
|
|
|
- Input: `s = ["H","a","n","n","a","h"]`
|
|
|
|
|
- Output: `["h","a","n","n","a","H"]`
|
|
|
|
|
|
|
|
|
|
### Constraints:
|
|
|
|
|
|
|
|
|
|
- `1 <= s.length <= 10^5`
|
|
|
|
|
- `s[i]` is a printable ascii character.
|
|
|
|
|
|
2026-09-01 14:21:54 -04:00
|
|
|
## Approach
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
flowchart TD
|
|
|
|
|
S(["reverseString(s)"]) --> I["i = 0, j = s.length - 1"]
|
|
|
|
|
I --> W{"i < j?"}
|
|
|
|
|
W -- no --> E(["done — s was reversed in place, nothing returned"])
|
|
|
|
|
W -- yes --> A["swap s[i] and s[j]"]
|
|
|
|
|
A --> B["i++; j--"]
|
|
|
|
|
B --> W
|
|
|
|
|
```
|
|
|
|
|
|
2026-08-25 11:19:35 -04:00
|
|
|
## Solution
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
/**
|
|
|
|
|
* @param {character[]} s
|
|
|
|
|
* @return {void} Do not return anything, modify s in-place instead.
|
|
|
|
|
*/
|
|
|
|
|
var reverseString = function(s) {
|
|
|
|
|
let i = 0;
|
|
|
|
|
let j = s.length - 1;
|
|
|
|
|
|
|
|
|
|
while (i < j) {
|
|
|
|
|
[s[i], s[j]] = [s[j], s[i]];
|
|
|
|
|
j--;
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
```
|
2026-09-01 14:21:54 -04:00
|
|
|
|
|
|
|
|
## Explanation
|
|
|
|
|
|
|
|
|
|
<YouTube id="_d0T_2Lk2qA" title="Reverse String - 3 Ways - Leetcode 344 - Python" />
|