題目描述
編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 char[] 的形式給出。
不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。
你可以假設數組中的所有字符都是 ASCII 碼錶中的可打印字符。
示例 1:
輸入:["h","e","l","l","o"]
輸出:["o","l","l","e","h"]
示例 2:
輸入:["H","a","n","n","a","h"]
輸出:["h","a","n","n","a","H"]
思路分析
這道題對於我小菜鳥來說還挺簡單的,一次就過了,超級開心鴨!
看到題目第一就想到 雙指針法,頭指針和尾指針。
生活中有個非常簡單類似的小例子,比如把兩個杯子A、B的飲料互換,就需要藉助一個空杯子C,把A倒入C,再把B倒入A,最後C倒入B,就完成交換嘍,可能這個例子和我們這道題不是太一樣,但大概原理是醬紫啦。
代碼
class Solution(object):
def reverseString(self, s):
"""
:type s: List[str]
:rtype: None Do not return anything, modify s in-place instead.
"""
n = len(s)
if n <= 1:
return
i = 0
j = n - 1
while i < j:
turn = s[i]
s[i] = s[j]
s[j] = turn
i += 1
j -= 1