編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 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