当前位置: 首页 > article >正文

LeetCode 344.反转字符串

问题描述

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题

问题链接

思路

使用双指针法,left指向s[0],right指向s[s.length - 1];两指针相向遍历数组,每次交换两位置的字符,直到两指针相遇

code

class Solution {
    public void reverseString(char[] s) {
        int left = 0;
        int right = s.length - 1;
        //当left与right不相等时,交换left和right处的字符
        while(left <= right){
            char temp = s[left];
            s[left] = s[right];
            s[right] = temp;
            left++;
            right--;
        }
    }
}
class Solution {

    public void reverseString2(char[] s) {
        int left = 0;
        int right = s.length - 1;
        while (left < right){
            s[left] ^= s[right]; //构造 a ^ b 的结果,并放在 a 中
            s[right] ^= s[left]; //将 a ^ b 这一结果再 ^ b ,存入b中,此时 b = a, a = a ^ b
            s[left] ^= s[right];  //a ^ b 的结果再 ^ a ,存入 a 中,此时 b = a, a = b 完成交换
            left++;
            right--;
        }
    }
}

http://www.kler.cn/news/364648.html

相关文章:

  • 深入探讨 HTTP 请求方法:GET、POST、PUT、DELETE 的实用指南
  • 通过页面添加国际化数据,实现vue的国际化
  • Android Audio基础——音频流重采样(十三)
  • Python小游戏8——贪吃蛇
  • 开源FluentFTP实操,操控FTP文件
  • 光伏电站折旧率的计算
  • 书生营L0G3000 Git 基础知识
  • 深入拆解TomcatJetty——Tomcat生命周期与多层容器
  • html如何实现跳转到锚点
  • 渗透测试导学
  • HTML 与 CSS 演绎敲击键盘的灵动之手
  • 15分钟学 Go 第 10 天:函数参数和返回值
  • Genmo 的 Mochi1 AI 视频生成技术:内容创作的新纪元
  • 从SQL到NoSQL:数据库类型及应用场景
  • Vert.x学习笔记
  • Eclipse中继承自Collection<Object>的示例
  • 【三十七】【QT开发应用】使用QVideoWidget播放视频,QT模块缺失时更新安装模块步骤(利用虚拟网址打开应用加速)
  • 架构师考试系列(6)论文专题:论分布式架构设计
  • Mac虚拟机, 在Win的Linux子系统的Docker里运行MacOS,操作系统大套娃
  • H5实现PDF文件预览,使用pdf.js-dist进行加载
  • Mac 出现zsh: command not found: aapt
  • 敏捷开发实践:SpringBoot房屋租赁管理系统
  • HivisionIDPhoto Docker部署以及Springboot接口对接(AI证件照制作)
  • 开源数据库 - mysql - 体系结构与组件
  • 京准电钟HR-901GB双GPS北斗卫星时钟服务器
  • C++桂城 2022.六年级.02.最小的数