-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathleetcode541.py
30 lines (23 loc) · 1.02 KB
/
leetcode541.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution:
def reverseStr(self, s: str, k: int) -> str:
result = list(s)
n = len(result)
for left in range(0,n, 2*k):
right = left + k
self.reverse(result,left,min(right,n) - 1)
return "".join(result)
def reverse(self, array, begin, end):
while begin < end:
array[begin], array[end] = array[end], array[begin]
begin += 1
end -= 1
if __name__ == '__main__':
solution = Solution()
assert "cbadefg" == solution.reverseStr("abcdefg", 3)
assert "gfedcba" == solution.reverseStr("abcdefg", 8)
assert "bacd" == solution.reverseStr("abcd", 2)
assert "dcba" == solution.reverseStr("abcd", 4)
assert "dcbaefg" == solution.reverseStr("abcdefg", 4)
assert "fdcqkmxwholhytmhafpesaentdvxginrjlyqzyhehybknvdmfrfvtbsovjbdhevlfxpdaovjgunjqllgsqddebemjanqcqnfkjmi" == solution.reverseStr(
"hyzqyljrnigxvdtneasepfahmtyhlohwxmkqcdfehybknvdmfrfvtbsovjbdhevlfxpdaovjgunjqlimjkfnqcqnajmebeddqsgl",
39)