编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。
我的第一反映是:列表的反转方法
直接 return s.reverse()
然后就看了看别人的解体思路:
通过步长直接反转: s[::-1]
使用双指针的方式:
总体来说,道路千万条,但面试官不会让你直接调用方法,猜测他想考的是双指针的用法!~
class Solution:
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
#s[:]=s[::-1]
#s.reverse()
l,r=0,len(s)-1
while r-l>0:
s[l],s[r]=s[r],s[l]
l+=1
r-=1