0%

代码随想录第二十一天

字符串-反转字符串

题目链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
void reverseString(vector<char>& s) {
int fast = s.size() - 1;
int slow = 0;
while(fast > slow){ //fast != slow会出错,当字符串是偶数的时候会出事,fast与slow永远不会相等
char tmp = s[slow];
s[slow] = s[fast];
s[fast] = tmp;
fast--;
slow++;
}
}
};

//可以直接用swap
class Solution {
public:
void reverseString(vector<char>& s) {
for (int i = 0, j = s.size() - 1; i < s.size()/2; i++, j--) {
swap(s[i],s[j]);
}
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution:
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
left, right = 0, len(s) - 1

# 该方法已经不需要判断奇偶数,经测试后时间空间复杂度比用 for i in range(right//2)更低
# 推荐该写法,更加通俗易懂
while left < right:
s[left], s[right] = s[right], s[left]
left += 1
right -= 1