| java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.youkuaiyun.com/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];
}
}
本文介绍了如何使用Java编程语言中的双指针技巧解决字符串反转问题,无论字符数量是奇数还是偶数,通过左右指针交换实现高效算法。


1212

被折叠的 条评论
为什么被折叠?



