題目:
我的解法:
思路:判斷字元串中的字元是奇數個還是偶數個,分别從中心開始向首尾周遊交換。
class Solution {
public void reverseString(char[] s) {
int n = s.length;
if(n==0){
return;
}
if(n%2==0){
int mid_left = n/2-1;
int mid_right = n/2;
int d = (n-2)/2;
for(int i=0; i<=d; i++){
char temp = s[mid_right+i];
s[mid_right+i]=s[mid_left-i];
s[mid_left-i] = temp;
}
return;
}else if(n%2==1){
int mid = (n-1)/2;
int d = mid;
for(int i=1; i<=mid; i++){
char temp = s[mid+i];
s[mid+i] = s[mid-i];
s[mid-i] = temp;
}
return;
}
}
}
官方題解:從兩邊向中間進行交換。
class Solution {
public void reverseString(char[] s) {
int n = s.length;
for (int left = 0, right = n - 1; left < right; ++left, --right) {
char tmp = s[left];
s[left] = s[right];
s[right] = tmp;
}
}
}
作者:LeetCode-Solution
連結:https://leetcode-cn.com/problems/reverse-string/solution/fan-zhuan-zi-fu-chuan-by-leetcode-solution/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。