4-字符串-11-反转字符串-LeetCode344

4-字符串-11-反转字符串-LeetCode344

LeetCode: 题目序号344

更多内容欢迎关注我(持续更新中,欢迎Star✨)

Github:CodeZeng1998/Java-Developer-Work-Note

技术公众号:CodeZeng1998(纯纯技术文)

生活公众号:好锅(Life is more than code)

CSDN: CodeZeng1998

其他平台:CodeZeng1998好锅

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 码表中的可打印字符
    /*** 反转字符串(双指针)** @param s 待反转的字符串* @author CodeZeng1998*/public void reverseString(char[] s) {int left = 0;int right = s.length - 1;while (left <= right) {char tempChar = s[right];s[right] = s[left];s[left] = tempChar;left++;right--;}}

ChatGPT:

该代码实现了一个字符串反转的功能。输入是一个字符数组 s,函数将该数组原地反转,即不使用额外的空间,将字符顺序颠倒。

1. 初始化指针: 代码首先初始化了两个指针:

  • left 指针从数组的起始位置开始,初始值为 0
  • right 指针从数组的末尾位置开始,初始值为 s.length - 1

2. 进入循环: 使用一个 while 循环,当 left 指针小于或等于 right 指针时,循环继续执行。这个条件确保了指针从两端向中间移动,直到相遇或交错。

3. 交换字符: 在每次循环迭代中,代码执行以下步骤:

  • 暂存字符:将 right 指针对应的字符暂存在一个临时变量 tempChar 中。
  • 交换字符:将 left 指针对应的字符赋值给 right 指针对应的位置。
  • 恢复字符:将 tempChar 中暂存的字符赋值给 left 指针对应的位置。

4. 移动指针: 交换完字符后,移动两个指针:

  • 左指针右移:将 left 指针加一,向右移动一位。
  • 右指针左移:将 right 指针减一,向左移动一位。

5. 循环结束:left 指针大于 right 指针时,表示所有字符都已经交换完毕,整个数组实现了原地反转。

6. 示例过程: 假设输入字符数组为 ['h', 'e', 'l', 'l', 'o']

  • 初始状态:left = 0right = 4,字符数组为 ['h', 'e', 'l', 'l', 'o']
  • 第一次迭代:交换 s[0]s[4],得到 ['o', 'e', 'l', 'l', 'h'],然后移动指针:left = 1right = 3
  • 第二次迭代:交换 s[1]s[3],得到 ['o', 'l', 'l', 'e', 'h'],然后移动指针:left = 2right = 2
  • 第三次迭代:由于 left 等于 right,交换 s[2]s[2],字符数组不变,得到 ['o', 'l', 'l', 'e', 'h'],然后移动指针:left = 3right = 1
  • 退出循环:此时 left 大于 right,循环结束,最终数组为 ['o', 'l', 'l', 'e', 'h'],字符串已被反转。

通过以上步骤,字符数组 s 中的字符顺序被原地反转,完成字符串反转的功能。

344. Reverse String

Write a function that reverses a string. The input string is given as an array of characters s.

You must do this by modifying the input array in-place with O(1) extra memory.

Example 1:

Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]

Example 2:

Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]

Constraints:

  • 1 <= s.length <= 105
  • s[i] is a printable ascii character.

在这里插入图片描述

上图由 Pic 生成

关键词:Near is a desert, far is a snowy mountain

更多内容欢迎关注我(持续更新中,欢迎Star✨)

Github:CodeZeng1998/Java-Developer-Work-Note

技术公众号:CodeZeng1998(纯纯技术文)

生活公众号:好锅(Life is more than code)

CSDN: CodeZeng1998

其他平台:CodeZeng1998好锅

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

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

相关文章

认识一些分布函数-Frechet分布及其应用

1. 何为Frechet分布 Frechet分布也称为极值分布(EVD)类型II,用于对数据集中的最大值进行建模。它是四种常用极值分布之一。另外三种是古贝尔分布、威布尔分布和广义极值分布(Gumbel Distribution, the Weibull Distribution and the Generalized Extreme Value Distributi…

亿达中国武汉园区入选“武汉市科技金融工作站”及“武汉市线下首贷服务站”

近日&#xff0c;武汉市2024科技金融早春行活动在深交所湖北资本市场培育基地举行。会上&#xff0c;第四批武汉市科技金融工作站试点单位名单及第五批武汉地区金融系统线下首贷服务站名单正式公布&#xff0c;武汉软件新城成功入选上述两个名单。 为缓解科技型企业融资难题&a…

vue2+echarts实现简易的2d地图效果

背景 公司的一个可视化数据大屏里面&#xff0c;有一个使用echarts实现的2d地图。不是我开发的&#xff0c;在此记录一下实现过程以及一些扩展解构。应该是从哪个航空航线图改动了一下&#xff0c;效果看起来还是可以的。 效果预览 版本 vue版本使用的是"^2.6.12"…

我要成为算法高手-双指针篇

目录 什么是双指针?问题1&#xff1a;移动零问题2&#xff1a;复写零问题3&#xff1a;快乐数问题4&#xff1a;盛最多水的容器问题5&#xff1a;有效三角形个数问题6&#xff1a;查找总价格和为目标值的两个商品(两数之和)问题7&#xff1a;三数之和问题8&#xff1a;四数之和…

私域流量新利器:大模型+智慧客服+知识智能多管齐下,效果倍增!

前言 随着互联网环境的发展&#xff0c;线上市场竞争日益激烈&#xff0c;越来越多的企业开始关注私域流量的运营和管理——将品牌的用户数据在品牌官网、微信公众号、APP等自有平台上进行管理和运营&#xff0c;通过与用户建立深入的关系和互动&#xff0c;提升用户黏性、增强…

LNMP搭建:Linux+Nginx+MySQL+PHP

关闭防火墙和核心防护&#xff0c;使用一台机器Node1搭建LNMP systemctl stop firewalld; setenforce 0 所需源码包&#xff1a;可以去官网下载 编译Nginx 创建/data&#xff0c;在/data/下放源码包 [rootNode1 ~]#:mkdir /data;cd /data 安装依赖包 [rootNode1 data]#:yum …

第一个SpringBoot程序

第一个SpringBoot程序 目录介绍 当我们创建了一个SpringBoot项目之后&#xff0c;会出现如下的目录结构 SpringBoot项⽬有两个主要的⽬录&#xff1a; src/main/java: Java源代码 src/main/resources:为静态资源或配置⽂件&#xff1a; /static&#xff1a;静态资源⽂件夹,⽐…

Spring Cloud Netflix 之 Ribbon

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言前言1、负载均衡1.1、服务端负载均衡1.2、客户端负载均衡 2、Ribbon实现服务…

大模型企业落地:制造业可以选择的应用场景

前言 在当今制造业快速发展的背景下&#xff0c;设备稳定运行对于企业的发展至关重要。然而&#xff0c;传统的设备维修模式已无法满足现代企业的需求。为此&#xff0c;引入智能化、数字化的设备维修解决方案成为必然趋势。本文将探讨如何利用大模型技术&#xff0c;构建企业…

智慧工厂人员定位系统的影响与前景展望

随着科技的不断发展&#xff0c;智能制造正在迅速崛起&#xff0c;而智慧工厂人员定位系统作为其中的重要组成部分&#xff0c;正在改变传统制造业的面貌。这一系统通过利用物联网、室内定位等技术手段&#xff0c;能够实时准确地追踪和监控工厂内人员的位置。那么&#xff0c;…

数据采集项目2-业务数据同步

全量同步 每天都将业务数据库中的全部数据同步一份到数据仓库 全量同步采用DataX datax datax使用 执行 python /opt/module/datax/bin/datax.py /opt/module/datax/job/job.json 更多job.json配置文件在&#xff1a; 生成的DataX配置文件 java -jar datax-config-genera…

linux C语言 pthread多线程11错误 卡死

pthread新手坑&#xff0c;跟着网上直接写&#xff0c;pthread_create然后就让函数跑&#xff0c;跑完了直接在函数里面return。这个流程&#xff0c;小测试&#xff0c;一点毛病都没有&#xff0c;跑得贼溜。 但是客户拿去压测七天后&#xff0c;出现卡死的现象。分析后&…

AI图书下载:《ChatGPT打造赚钱机器》

这本书《ChatGPT打造赚钱机器》&#xff08;ChatGPT Money Machine 2024 The Ultimate Chatbot Cheat Sheet&#xff09;是一本全面的指南&#xff0c;旨在帮助读者快速掌握如何利用ChatGPT等人工智能技术创造收益。 以下是各章节内容的总结&#xff1a; **引言** 介绍了人工智…

AI模型部署:Triton+TensorRT部署Bert文本向量化服务实践

前言 本篇介绍以Triton作为推理服务器&#xff0c;TensorRT作为推理后端&#xff0c;部署句嵌入向量模型m3e-base的工程方案和实现&#xff0c;句嵌入模型本质上是Bert结构&#xff0c;本案例可以推广到更一般的深度学习模型部署场景。 内容摘要 推理服务器和推理后端介绍Ten…

个人关于vuex的见解

前言 vuex是什么&#xff1f; Vuex 是 Vue.js 的官方状态管理库&#xff0c;专为 Vue.js 应用程序设计&#xff0c;用于在复杂的前端应用中集中管理状态。 Vuex 的重要性 集中管理&#xff1a;统一存储应用状态&#xff0c;简化复杂应用的状态逻辑。响应式更新&#xff1a;…

PostgreSQL下载地址

下载地址&#xff1a;PostgreSQL: File Browser

AI实践与学习6-RAG流程优化学习

背景 RAG流程很多细节优化点&#xff0c;助力AIGC。 内容 LangChain在RAG功能上的一些能力 多路向量检索 多向量检索器的核心想法是将我们想要用于答案合成的文档与我们想要用于检索的参考文献分开。这允许系统为搜索优化文档的版本&#xff08;例如&#xff0c;摘要&…

欣九康诊疗系统让中医诊所创收不再难

近些年由于国家对中医药的支持政策不断地在推进落实&#xff0c;所以导致中医馆、中医诊所越开越多&#xff0c;再加上各行各业都在向数字化转型&#xff0c;也给中医诊所带来了冲击&#xff0c;所以如何平衡机遇与竞争&#xff0c;实现诊所创收便成了每位中医诊所的负责人所必…

牛客链表刷题(二)

目录 题目一&#xff1a;合并两个有序链表 代码&#xff1a; 题目二&#xff1a;合并k个有序链表 代码&#xff1a; 题目三&#xff1a;判断链表中是否有环 代码&#xff1a; 题目四&#xff1a;链表中环的入口结点 代码&#xff1a; 题目一&#xff1a;合并两个有序链表 代…

卫星通讯助力船舶可视化监控:EasyCVR视频汇聚系统新应用

一、背景 随着科技的不断进步和社会治安的日益严峻&#xff0c;视频监控系统已经成为维护公共安全和提升管理效率的重要工具。传统的视频监控主要依赖于有线传输&#xff0c;但受到地域限制、布线成本高等因素的影响&#xff0c;其应用范围和效果受到一定限制。而卫星通讯传输…