Leetcode 541 Reverse String II

Given a string s and an integer k, reverse the first k characters for every 2k characters counting from the start of the string.

If there are fewer than k characters left, reverse all of them. If there are less than 2k but greater than or equal to k characters, then reverse the first k characters and left the other as original.

Input: s = "abcdefg", k = 2
Output: "bacdfeg"
Input: s = "abcd", k = 2
Output: "bacd"
  • Soruda bize bir string ve bir sayı veriliyor ve bu stringin bu sayıx2 kadar olan bölümlerinde sayı kadar olan ilk harflerini ters çevirmemiz isteniyor.
  • Soru biraz karışık ama örneklersek.
  • “abcdefghsdsdf” ve 2 için “bacdfeghdssdf” oluşuyor.Her 4 karakterlik alanın ilk 2 karakteri ters çevriliyor.
  • abcd efgh sdsdf bacd fegh dssdf
class Solution:
    def reverseStr(self, s, k):
        s = list(s)
        for i in range(0, len(s), 2*k):
            s[i:i+k] = reversed(s[i:i+k])
        return "".join(s)