题解一
思路
这道题也很简单只需要循环到字符数组的一半,然后将前后对应数组元素做交换就可以了。
代码
java
class Solution {
public void reverseString(char[] s) {
char temp = 'a';
for(int i = 0; i < (s.length) / 2; i++){
temp = s[i];
s[i] = s[s.length - 1 - i];
s[s.length - 1 - i] = temp;
}
}
}
题解二
附上《代码随想录》里的位运算的一个题解
代码
java
class Solution {
public void reverseString(char[] s) {
int l = 0;
int r = s.length - 1;
while (l < r) {
s[l] ^= s[r]; //构造 a ^ b 的结果,并放在 a 中
s[r] ^= s[l]; //将 a ^ b 这一结果再 ^ b ,存入b中,此时 b = a, a = a ^ b
s[l] ^= s[r]; //a ^ b 的结果再 ^ a ,存入 a 中,此时 b = a, a = b 完成交换
l++;
r--;
}
}
}