15 Jun 2024C++ / Python / TypeScriptEasy

Reverse String II

Collected C++, Python, TypeScript solutions for reverse string ii. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Reverse String II. the solution files are available below.

solution files

  • C++ reverse-string-ii/synced-solution.cpp
  • Python reverse-string-ii/synced-solution.py
  • TypeScript reverse-string-ii/synced-solution.ts

Solution files

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