題目說明
344. Reverse String
給定一個字元陣列 s,請就地 (in-place) 反轉。
範例:
Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
程式碼
Python 解法
def reverseString(s):
left, right = 0, 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, right = s.length - 1;
while (left < right) {
char temp = s[left];
s[left] = s[right];
s[right] = temp;
left++;
right--;
}
}
}
複雜度分析
Java vs Python 語法差異
心得
相比昨天回文那題,這題不用條件判斷只是單純交換位置,可以熟悉指標控制。