LC344. 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s
的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
示例 1:
输入:s = ["h","e","l","l","o"] 输出:["o","l","l","e","h"]
示例 2:
输入:s = ["H","a","n","n","a","h"] 输出:["h","a","n","n","a","H"]
提示:
1 <= s.length <= 105
s[i]
都是 ASCII 码表中的可打印字符
解法
分析:两头互相交换即可
for
循环版本
1 | class Solution: |
while
双指针版本
1 | class Solution: |
python
特有写法by灵神
1 | class Solution: |
拓展延伸
python中如何通过形参修改实参的结果
例1:数值类型1
2
3
4
5
6
7
8
9
10
11
12
13
14def f1(a):
print("f1函数打印形参:",a)
def f2(a):
print("f2函数打印形参:",a)
a = 9999
print("修改后,f2函数打印形参:",a)
a = 123456
print("原始的实参:",a)
f1(a)
print("f1函数调用后的实参",a)
f2(a)
print("f2函数调用后的实参",a)
打印结果1
2
3
4
5
6原始的实参: 123456
f1函数打印形参: 123456
f1函数调用后的实参 123456
f2函数打印形参: 123456
修改后,f2函数打印形参: 9999
f2函数调用后的实参 123456
结论:如果是整数类型,则形参修改不了实参
例2:列表类型1
2
3
4
5
6
7
8
9
10
11
12
13
14
15def f1(a):
print("f1函数打印形参:",a)
def f2(a):
print("f2函数打印形参:",a)
# 注:下面必须是a[:]形式,直接对a赋值没有用
a[:] = [4,5,6]
print("修改后,f2函数打印形参:",a)
a = [1,2,3]
print("原始的实参:",a)
f1(a)
print("f1函数调用后的实参",a)
f2(a)
print("f2函数调用后的实参",a)
打印结果1
2
3
4
5
6原始的实参: [1, 2, 3]
f1函数打印形参: [1, 2, 3]
f1函数调用后的实参 [1, 2, 3]
f2函数打印形参: [1, 2, 3]
修改后,f2函数打印形参: [4, 5, 6]
f2函数调用后的实参 [4, 5, 6]
结论:如果是list类型,则形参可以修改实参