题目:
我的解法:
思路:判断字符串中的字符是奇数个还是偶数个,分别从中心开始向首尾遍历交换。
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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。