【实战】ACM 选手图解 LeetCode 反转字符串Ⅱ

【实战】ACM 选手图解 LeetCode 反转字符串 图解 LeetCode 344:反转字符串。 阅读详情

大家好呀,我是加倍反转蛋。

今天解决的反转字符串Ⅱ,是在上篇简单到扣脚的反转字符串的基础上,加了一丢丢的限制条件。

不过不慌,依然还是个简答题,直接肝。

fa7d4c6a0351a337d3225945b2448ac

LeetCode 541:反转字符串Ⅱ

题意

我给定一个字符串 s 和一个整数 k,从开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。

如果剩余字符少于 k 个,则将剩余字符全部反转。

如果剩余字符小于 2k 个,则反转前 k 个字符,其余字符保持原样。

示例

输入:s = “abcdefg”,k = 2

输出:“bacdfeg”

提示

  • 1 <= s.length <= 10^4
  • s 仅由小写英文组成
  • 1 <= k <= 10^4

题目解析

水题,难度简单。

题意还是很好理解的,一句话说就是:每次隔着 k 个字符反转 k 个字符。

字符串的反转,在上道题字符串反转中写过,链接在下面:

ACM 选手图解 Leetcode 反转字符串

重点就是将 s[0] s[1] … s[n-1] 以 s[n-1] … s[1] s[0] 的形式输出。

即 s[i] 和 s[n - i - 1] 交换位置。

可以使用双指针的方式解决字符串反转,维护一个左指针 left 和右指针 right。

初始化 left 指向数组首元素,right 指向数组右元素。

当 left < right 的时候,交换 s[left] 和 s[right],同时 left 右移,right 左移。

f211e282ed84022b934844445507c3b

这道题就是直接按照题意模拟就好了,就是注意一下边界问题,也就是最后剩余的字符块:

  • 剩余字符块的长度 0 <= length <= k 时,不满足 k 个字符,当前字符直接全部反转。
  • 当前字符块的长度 k <= length <= 2k,那前 k 个字符是完整的,只反转前 k 个字符。

图解

以 s = “abcdefg”,k = 2 为例。

按照要求,每次计数至 2k 个字符,则在此,2 * k = 4。

字符串 s 相当于被分为了两部分 “abcd” 和 “efg”。

2e6643cbf299b120f7a79a4ad2d8ef8

既然是模拟,直接看图就好了。

在这我先写了个反转字符串函数:


        
LeetCode刷题(ACM模式)-04字符串 阅读详情

相关推荐

【实战】ACM 选手图解 LeetCode 翻转字符串中的单词

图解 LeetCode151:翻转字符串中的单词

用有趣有味的方式,学习有价值的编程知识。 526

【实战】ACM 选手图解 LeetCode 设计链表

图解 LeetCode 107:设计链表。

用有趣有味的方式,学习有价值的编程知识。 873

二、ROS2完成Docker容器和宿主机通信,使用ros2 topic list看到,但是无法echo

如果容器和主机权限不一致,则会导致无法通信(我的代码中,docker容器是root,宿主机是普通用户),虽然可以查询到相关话题,但是订阅后没有消息输出。比如,docker容器创建了一个共享内存,其所有者为docker容器用户root,当宿主机去访问的时候,由于用户不同,没有权限访问,也就无法进行信息传递。该方法只是临时修改共享内存的权限,每次运行完,需要重新运行上述命令,才可以进行通信。在运行的过程中,ROS2使用了共享内存机制,会共享内存。运行之后,宿主机和容器可能用户名不同,这是因为。

qq_43280851的博客 1265

离线路径规划服务Graphhopper

离线路径规划服务Graphhopper 本文主要探索使用Graphhopper搭建离线路径规划服务,需要掌握一定的JAVA基础环境配置的知识 文章目录离线路径规划服务Graphhopper前言一、Graphhopper是什么?二、使用步骤1.下载Graphhopper2.从OpenStreetMap下载路图数据3.安装Graphhopper所需环境4.修改配置5.启动Graphhopper总结 前言 在外网环境中可以使用百度、高德等第三方的sdk用以实现路径规划的功能,由于项目的需要,在离线环境中需要使

Sysdark的博客 7561

目标检测 | R-CNN、Fast R-CNN与Faster R-CNN理论讲解

目标检测:R-CNN、Fast R-CNN与Faster R-CNN理论讲解,根据B站up霹雳吧啦Wz总结。此文章包含R-CNN算法原理讲解、Fast R-CNN算法原理讲解、Faster R-CNN原理讲解、目标检测评价指标介绍与特征金字塔网络FPN讲解。

houjingchuan的博客 9570

实用工具抓取youtube热门数据

YouTube作为全球第二大搜索引擎,2024年日均视频播放量突破50亿次,头部创作者单月广告分成可达百万美元量级。但对数据分析者而言,其反爬机制堪称业界最严: ‌反爬技术升级‌:Google部署的Botguard系统可检测异常流量,触发机制包括: 单IP每小时请求超过50次即封禁 检测Headless浏览器指纹(如Chrome的navigator.webdriver属性) 动态加载内容(如评论数据需滚动页面3次后加载) ‌数据价值维度‌:某MCN机构研究显示,前100热门视频的标题关键词复用率高达67%

26万+

tiny4412用 usb 连接计算机显示sec s5pc210 test b/d 解决方法

当我用USB线连接tiny4412的microUSB端口的时候,出现了驱动没有正常安装,显示“sec s5pc210 test b/d” 出现这种问题的原因有: 1、没有安装到正确的USB驱动; 2、SD卡没有插好 我出现问题的原因属于第二种,插入SD卡后,上电后,LCD屏亮了,但没有任何显示   解决方法是:     更换一张SD卡,重新插入开发板卡槽,上电开

karaskass的博客 3233

《UDS协议从入门到精通》系列——图解0x19:读取故障码信息

认识最核心的诊断服务“0x19”!!全网最强图解!一文搞懂所有常用子服务!

车载系统攻城狮 1万+

面经-2023-联发科MTK-数字芯片设计

面经-2023-联发科MTK-数字芯片设计

w0shishabi的博客 2944

Android OTA 更新面试题及参考答案

OTA 更新即空中下载技术(Over-the-Air Technology)更新,是一种通过无线网络对移动设备的系统软件或应用程序进行远程更新的技术手段。其原理是设备通过移动网络或 Wi-Fi 连接到服务器,服务器检测设备上可更新的软件版本,当有新的版本时,将更新包发送到设备上。设备接收后,在后台自动完成更新包的下载、安装等一系列操作,无需用户手动下载完整的系统镜像或应用安装包并通过数据线等方式进行安装。例如,当手机厂商推出新的安卓系统版本或安全补丁时,就会通过 OTA 方式推送给用户。

大模型大数据攻城狮的专栏 1630

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 【实战】ACM 选手图解 LeetCode 反转字符串
下一篇: 【实战】ACM 选手图解 LeetCode 替换空格
编程文青李狗蛋
博客等级 码龄5年 27粉丝 27原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值