题目链接:344. 反转字符串 - 力扣(LeetCode)
解题思路:
本题的字符串是通过字符型数组的形式给出,所以此题就与之前数组中的双指针题目十分相似。通过循环不断的进行遍历,在循环体中进行交换的操作。
代码实现:
class Solution {
public void reverseString(char[] s) {
int l = s.length-1;
int r = 0;
// while(l > r) {//使用while循环
// char temp = s[l];
// s[l] = s[r];
// s[r] = temp;
// l--;
// r++;
// }
// for(; r < s.length / 2; r++,l--){
// char loop = s[r];
// s[r] = s[l];
// s[l] = loop;
// }//使用for循环
while (r < l) {
s[r] ^= s[l];
s[l] ^= s[r];
s[r] ^= s[l];
l--;
r++;
}
}
}
总结:
在涉及双指针以及循环时,一定要处理好循环的边界,搞清楚循环退出的条件是什么。以及要熟悉与运算在交换两个数时的使用,这种方式可以不需要引进辅助变量temp就可进行两数交换的操作。