题解一
思路
这道题也很简单只需要循环到字符数组的一半,然后将前后对应数组元素做交换就可以了。
代码
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;}}
}
题解二
附上《代码随想录》里的位运算的一个题解
代码随想录
代码
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 ^ bs[l] ^= s[r]; //a ^ b 的结果再 ^ a ,存入 a 中,此时 b = a, a = b 完成交换l++;r--;}}
}