Isaac Emmanuel
15 Jun 2024•EasyC++ / Python / TypeScript

Reverse String II

C++, Python and TypeScript solutions for Reverse String II.

The Reverse String II solutions are below.

Solution files

Python•reverse-string-ii/synced-solution.py
class Solution:
    def reverseStr(self, s: str, k: int) -> str:
        chars = list(s)
        for start in range(0, len(chars), 2 * k):
            chars[start:start + k] = reversed(chars[start:start + k])
        return "".join(chars)
C++•reverse-string-ii/synced-solution.cpp
class Solution {
public:
    string reverseStr(string s, int k) {
        for (int start = 0; start < static_cast<int>(s.size()); start += 2 * k) {
            reverse(s.begin() + start, s.begin() + min(start + k, static_cast<int>(s.size())));
        }
        return s;
    }
};
TypeScript•reverse-string-ii/synced-solution.ts
function reverseStr(s: string, k: number): string {
    const chars = s.split("");
    for (let start = 0; start < chars.length; start += 2 * k) {
        let left = start;
        let right = Math.min(start + k - 1, chars.length - 1);
        while (left < right) {
            [chars[left], chars[right]] = [chars[right], chars[left]];
            left++;
            right--;
        }
    }
    return chars.join("");
}