LeetCode--344.反转字符串(字符串/双指针法)

张开发
2026/4/20 12:39:11 15 分钟阅读

分享文章

LeetCode--344.反转字符串(字符串/双指针法)
344.反转字符串题目描述编写一个函数其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间你必须**原地修改输入数组**、使用 O(1) 的额外空间解决这一问题。示例 1输入s [h,e,l,l,o] 输出[o,l,l,e,h]示例 2输入s [H,a,n,n,a,h] 输出[h,a,n,n,a,H]提示1 s.length 105s[i]都是 ASCII 码表中的可打印字符解题思路在这里可以使用异或XOR来实现不创建临时变量的交换方法。因为1、异或满足交换律2、异或满足结合律3、A^A0举例代码classSolution{publicvoidreverseString(char[]s){// 定义左右指针intleft0;intrights.length-1;while(leftright){// 创建临时变量chartemp;temps[left];s[left]s[right];s[right--]temp;}}}使用异或classSolution{publicvoidreverseString(char[]s){// 定义左右指针intleft0;intrights.length-1;while(leftright){// 使用异或此处不能取等 否则A^A0s[left]^s[right];s[right]^s[left];s[left]^s[right--];}}}

更多文章