1. 程式人生 > 其它 >LeetCode: 344. 反轉字串

LeetCode: 344. 反轉字串

編寫一個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列 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"]

雙指標法:

將 left 指向字元陣列首元素,right 指向字元陣列尾元素。當 left < right:交換 s[left] 和 s[right];left 指標右移一位,即 left = left + 1;right 指標左移一位,即 right = right - 1。當 left >= right,反轉結束,返回字元陣列即可。

Python版:

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        left = 0
        right = len(s) -1
        while left < right:
            s[left], s[right] = s[right], s[left]
            left 
+= 1 right -= 1

Java版:

class Solution {
    public void reverseString(char[] s) {
        int left = 0;
        int right = s.length - 1;
        while (left < right) {
            char temp = s[left];
            s[left] = s[right];
            s[right] = temp;
            left++;
            right
--; } } }

參考資料:

344. 反轉字串 - 力扣(LeetCode) (leetcode-cn.com)

344. 反轉字串 題解 - 力扣(LeetCode) (leetcode-cn.com)