java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 |
---|
解题思路 |
---|
- 如果是偶数个字符,那么前后两两交换即可。如果是奇数个字符,那么也一样前后两两交换,但是最中间的那个没必要交换。
- 所以可以采用双指针,left指向左边,right指向右边,然后交换即可。
代码 |
---|
class Solution {public void reverseString(char[] s) {int left = 0, right = s.length-1;//双指针while(left<right){//如果left和right指向同一个元素,就不用交换位置了swap(s,left++,right--);//如果left和right不是同一个,就交换他俩的位置}}//交换public void swap(char[] s,int left,int right){s[left]^=s[right];s[right]^=s[left];s[left]^=s[right];}
}