0%

代码随想录第二十二天

字符串-反转字符串II

题目链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public:
void reverse(string& s, int start, int end) {
for (int i = start, j = end; i < j; i++, j--) {
swap(s[i], s[j]);
}
}
string reverseStr(string s, int k) {
for(int i = 0; i < s.size(); i += (2 * k)){
if(i + k <= s.size()){
reverse(s, i, i + k - 1);
continue;
}
reverse(s, i, s.size() - 1);

}

return s;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution(object):
def reverseStr(self, s, k):
"""
:type s: str
:type k: int
:rtype: str
"""
def reverse_substr(text):
left, right = 0, len(text) - 1
while left < right:
text[left], text[right] = text[right], text[left]
left += 1
right -= 1
return text

res = list(s)

for cur in range(0, len(s), 2*k):
res[cur : cur + k] = reverse_substr(res[cur : cur + k])
return ''.join(res)