12、反转字符串

本文共196字。
展开

题目描述

方法1、双指针

我自己的思路:前后互换,遍历n//2次(向下取整)。其实就是双指针。

思路:发现规律。s[i] 的字符与 s[N - 1 - i] 的字符发生交换。

1
2
3
4
5
6
7
8
9
class Solution:
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
n = len(s)
x = n//2
for i in range(x):
s[i],s[n-1-i] = s[n-1-i],s[i]

或者直接逆向取值

s[:]=s[::-1]一行搞定

或者利用中间变量临时存储要反转的值。

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.
"""
n = len(s)
i = 0
while(i<n-1):
t = s[i] # 中间变量
s[i] = s[n-1]
s[n-1] = t
i += 1
n -= 1