Solution 1 - Optimized
For every block of 2k characters, reverse only its first k characters.
class Solution:
def reverseStr(self,s,k):
a=list(s)
for i in range(0,len(a),2*k): a[i:i+k]=reversed(a[i:i+k])
return "".join(a)
if __name__ == "__main__": assert Solution().reverseStr("abcdefg",2)=="bacdfeg"