Python 中的反转字符串 II

pythonserver side programmingprogramming更新于 2026/1/27 21:00:17

假设我们有一个字符串和一个整数 k,我们必须从字符串开头开始每 2k 个字符反转前 k 个字符。如果剩余字符不足,则反转所有字符。如果字符少于 2k 但大于或等于 k ​​个字符,则反转前 k 个字符,其余字符保留原样。

因此,如果输入为"abcdefgh"且 k = 3,则输出为"cbadefhg"

为了解决这个问题,我们将遵循以下步骤 −

  • l := 创建 s 的字符列表

  • i := k-1

  • while i < l + k 的大小 −

    • a := l[从索引 0 到 i-k+1]

    • b := l[从索引 i-k+1 到 i+1]

    • c := l[从索引 i+1 到末尾]

    • l := a 连接 b[从索引 0 到末尾] 连接 c

    • i := i + 2*k

  • 通过连接 l 中的每个字符返回字符串

示例

让我们看下面的实现,以便更好地理解 −

class Solution:
   def reverseStr(self, s, k):
      l = list(s)
      i = k-1
      while i < len(l)+k:
         a = l[:i-k+1]
         b = l[i-k+1:i+1]
         c = l[i+1:]
         l = a + b[::-1] + c
         i += 2*k
      return ''.join(l)

ob = Solution()
print(ob.reverseStr("abcdefg", 3))

输入

"abcdefg", 3

输出

cbadefg

相关文章


有用资源