每日一题(LeetCode)----字符串--反转字符串

每日一题(LeetCode)----字符串–反转字符串

1.题目(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 <= 105
    • s[i] 都是 ASCII 码表中的可打印字符

2.解题思路

思路一:双指针法

1.创建两个指针分别指向字符串的首元素和尾元素

2.将两根指针所指向的字符进行交换(交换有两种写法),然后左指针向后移动一位,右指针向前移动一位,当左指针所指向字符的位置大于右指针所指向字符的位置时,结束交换的操作,就可以得到反转后的字符串了

3.写出代码

思路一的代码

第一种交换的写法,用三个变量来进行交换
class Solution {
public:void reverseString(vector<char>& s) {int length=s.size();char* left=&s[0];char* right=&s[length-1];while(right>left){char temp;temp=*left;*left=*right;*right=temp;left++;right--;}}
};
第二种交换的写法,用异或进行交换,需要先判断两个字符是否相等,相等就不交换了
class Solution {
public:void reverseString(vector<char>& s) {int length=s.size();char* left=&s[0];char* right=&s[length-1];while(right>left){if(*left!=*right){*left=(*left)^(*right);*right=(*left)^(*right);*left=(*left)^(*right);}left++;right--;}}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/196559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网盘系统设计:万亿 GB 网盘如何实现秒传与限速?

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 网盘&#xff0c;又称云盘&#xff0c;是提供文件托管和文件上传、下载服务的网站&#xff08;File hostingservice&#xff09;。人们通过网盘保管自己拍摄的照片、视频&#xff0c;通过网盘和他人共享文件&#xff…

C++进阶篇6---lambda表达式

目录 一、lambda表达式 1.引入 2、lambda表达式语法 二、包装器---function 1.引入 2.包装器介绍 三、bind 一、lambda表达式 1.引入 class Person { public:Person(int age,string name):_age(age),_name(name){} //private://方便后面的举例int _age;string _name…

CAN总线负载率

总线负载率就是每秒钟传输了多少个位&#xff0c;波特率为500K的总线上每秒钟能够传输500‘000位&#xff0c;如果在某一秒中总线上只传输了100000位&#xff0c;则总线负载率为20%。 总线负载率 总线每秒上传输的实际位数 / 总线波特率 * 100% CAN总线负载率是CAN总线架构协…

JS生成登录验证码

采用js生成登录的验证码 采用的技术点有html&#xff0c;css&#xff0c;JS&#xff0c;jQuery HTML&#xff1a; <div class"box_b"><img src"./img/0775639c-c82c-4a29-937f-d2a3bae5151a.png" alt""><div class"regist…

智能变压器监控系统

智能变压器监控系统是一种先进的物联网技术和智能设备&#xff0c;能够实现对变压器的实时监测和管理&#xff0c;提高变压器的运行效率和可靠性&#xff0c;为用户提供及时、准确的变压器运行状态信息和故障预警。 力安科技A30变压器云控终端是一款集变压器温控仪、变压器运行…

LabVIEW开发工业设备远程在线状态监测

LabVIEW开发工业设备远程在线状态监测 项目需要减少意外停机和维护费用、提供更完整的机器操作和状态图、改进设备使用情况跟踪。 该解决方案是一个多节点&#xff08;即多站点&#xff09;远程监控系统&#xff0c;它利用了基于NI cRIO的控制器和定制的LabVIEW监测软件。 方…

【Lustre相关】应用部署-03-Lustre集群部署实践(软raid方案)

文章目录 一、前言1、硬件配置2、组网拓扑3、总体方案 二、软件安装三、集群部署1、配置多路径2、配置高可用集群3、配置zpool4、部署lustre5、配置Lustre角色高可用6、配置Lustre状态监控6.1、Lustre网络状态监控6.2、Lustre集群状态监控6.3、配置优化6.3.1、设置故障恢复不回…

不同数据库进行同步和增量数据(SQL server 与MySQL数据库为例)

场景 最近在做的一个项目需要将远程服务器的SQL server数据库中表的数据传输到本机的MySQL数据库中&#xff0c;并且远程的SQL server数据库表的数据会实时进行更新&#xff0c;并且差不多是一分钟内传输18条数据&#xff0c;例如现在是2023-12-4 15:09&#xff0c;在15:08这个…

JDK安装太麻烦?一篇文章搞定

JDK是 Java 语言的软件开发工具包&#xff0c;主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心&#xff0c;它包含了JAVA的运行环境&#xff08;JVMJava系统类库&#xff09;和JAVA工具。 JDK包含的基本组件包括&#xff1a; javac – 编译器&#xf…

FCRP第二题

【题目要求】 数据库中有一张地区数据统计表&#xff0c;但是并不规则 &#xff0c;记录类似于&#xff0c;225100:02:3:20160725是一串代码&#xff0c;以&#xff1a;分割&#xff0c;第1位为地区代码&#xff0c;第2位为分类代码&#xff0c;第3位为数量&#xff0c;第4位为…

X540t2关于手动安装intel驱动

首先去intel驱动官网下载&#xff0c;win10和win11驱动一样 https://www.intel.cn/content/www/cn/zh/download/18293/intel-network-adapter-driver-for-windows-10.html 然后下载下来解压 将Wired_driver_28.2_x64.exe修改成Wired_driver_28.2_x64.zip文件再解压 打开设备管…

【算法思考记录】力扣1094.拼车 C++【树状数组】

拼车问题&#xff08;LeetCode 1094&#xff09;的解析与C实现 Problem: 1094. 拼车 题目背景 在本题中&#xff0c;我们需要处理一个拼车的问题。假设一辆车有固定的座位容量&#xff0c;我们需要根据乘客的上车和下车地点&#xff0c;判断车辆是否能够在整个行程中满足不超过…

DPDK驱动加载

目录 整体加载思路 配置步骤 全局变量配置 调用流程编写 加载VFIO模块 删除VFIO模块 加载KNI模块 卸载KNI模块 创建大页内存 创建大页内存文件系统 删除遗留的大页内存 卸载大页文件系统 调用dpdk-devbind.py脚本来绑定PCI设备igb_uio驱动 加载igb_uio.ko驱动. 卸…

基于springboot + vue 学生网上请假系统

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

GeoServer本地部署与远程访问Web管理页面——“cpolar内网穿透”

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现&#xff0c;利用GeoServer可以方便地发布地图数据&#xff0c;允许用户对要素数据进行更新、删除、插入…

(C语言)求出1,2,5三个数不同个数组合为100的组合个数

#include<stdio.h> int main() {int count;for(int i 0;i < 100;i )for(int j 0;j < 50;j )for(int k 0;k < 20;k ){if(i j*2 k*5 100){count;printf("100可以拆分为%d个1元&#xff0c;%d个2元&#xff0c;%d个5元\n",i,j,k);} }printf("…

正则表达式与SQL数据库教程

使用正则表达式通过用例查询 Postgres 数据库&#xff1a; 正则表达式&#xff08;又名 Regex&#xff09; 正则表达式是一个强大的工具&#xff0c;广泛用于模式匹配和文本操作。 几乎所有编程语言都支持它们&#xff0c;并且经常用于文本提取、搜索和匹配文本等用例。 正则…

【刷题】二分查找

二分查找 69. x 的平方根 给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数函数和算符&#xff0c;例如 pow(x, 0.5) 或者 x **…

zipfile --- 使用ZIP存档

目录 ZipFile 对象 Path 对象 PyZipFile 对象 ZipInfo 对象 命令行接口 命令行选项 解压缩的障碍 由于文件本身 文件系统限制 资源限制 中断 提取的默认行为 源代码: Lib/zipfile/ ZIP 文件格式是一个常用的归档与压缩标准。 这个模块提供了创建、读取、写入、添加…

数据接口测试工具 Postman 介绍!

此文介绍好用的数据接口测试工具 Postman&#xff0c;能帮助您方便、快速、统一地管理项目中使用以及测试的数据接口。 1. Postman 简介 Postman 一款非常流行的 API 调试工具。其实&#xff0c;开发人员用的更多。因为测试人员做接口测试会有更多选择&#xff0c;例如 Jmeter…