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