当前位置:   article > 正文

力扣 344. 反转字符串_力扣字符串反转代码

力扣字符串反转代码

本题使用了双指针法,关键点在于理解反转的原理,利用左右指针交换字符串中的字符位置,从而实现字符串的翻转。

时间复杂度:O(n),空间复杂度:O(1)

思路:

  1. 首先定义左右两个指针指向字符串的首尾字符;
  2. 然后通过 while 循环,当左指针小于右指针时,进行字符串翻转;
  3. 字符串翻转的操作是通过异或运算实现的,即将左指针和右指针对应的字符进行异或,交换两个字符的值;
  4. 最后左指针加 1,右指针减 1,继续循环翻转字符串,直到左右指针相遇或者左指针大于右指针。

代码:

  1. class Solution {
  2. public:
  3. void reverseString(vector<char>& s) {
  4. int left = 0;
  5. int right = s.size() - 1;
  6. while (left < right) {
  7. s[left] ^= s[right];
  8. s[right] ^= s[left];
  9. s[left] ^= s[right];
  10. left++;
  11. right--;
  12. }
  13. }
  14. };
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/87298
推荐阅读
相关标签
  

闽ICP备14008679号