LeetCode-探索-初级算法-字符串-1.反转字符串(个人做题记录,不是习题讲解)
LeetCode探索-初级算法:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/
- 反转字符串
-
语言:java
-
思路:和旋转数组差不多的,就是用两个指针,一个头一个尾,向中间靠拢,两个指针异或运算处理
-
代码(1ms):
class Solution { public void reverseString(char[] s) { for(int i = 0,j = s.length-1;i<j;++i,--j){ s[i] ^= s[j]; s[j] ^= s[i]; s[i] ^= s[j]; } } }
-
参考代码(1ms):只不过改成用中间变量替换,题目说字符都可以用ASCII表示,所以我觉得用异或运算也ok
class Solution { public void reverseString(char[] s) { int left = -1; int right = s.length; while (++left < --right) { char c = s[left]; s[left] = s[right]; s[right] = c; } } }