反转字符串

🎯 问题描述(来源于LeetCode)

描述
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。

不要给另外的数组分配额外的空间,你必须**原地修改输入数组**、使用 O(1) 的额外空间解决这一问题。
说明

  • 1 <= s.length <= 105
  • s[i] 都是 ASCII 码表中的可打印字符

示例

  • 示例 1:
1
2
输入:s = ["h","e","l","l","o"]
输出:["o","l","l","e","h"]
  • 示例 2:
1
2
输入:s = ["H","a","n","n","a","h"]
输出:["h","a","n","n","a","H"]

💻 解题思路

思路1:对撞指针

思路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.
"""
left,right=0,len(s)-1
while left<right:
if left==right:
break
else:
s[left],s[right]=s[right],s[left]
left+=1
right-=1

思路1:📊 性能分析

提交结果
  • 运行时间:0ms击败100.00%
  • 内存消耗:23.30MB击败13.71%
复杂度验证
  • 时间复杂度:O(N)O(N)
  • 空间复杂度:O(1)O(1)

思考