打卡第八天|力扣344.反转字符串、541. 反转字符串II、剑指Offer 05.替换空格 、 151.翻转字符串里的单词 、 剑指Offer58-II.左旋转字符串 。

文章介绍了如何在限制额外空间的情况下,使用双指针技巧和库函数来解决字符串翻转的问题。涉及不同类型的字符串操作,包括整体反转、部分反转、替换空格以及左旋转字符串等,展示了多种算法实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

344.反转字符串

题目链接如下:344. 反转字符串

翻转字符串,题目说要用使用 O(1) 的额外空间解决这一问题,问题不大,我们还是使用两个指针依次交换,当然交换也可以直接用swap函数

当然,你也可以直接用c++自带的库函数 reverse

541. 反转字符串II

题目链接如下:541. 反转字符串 II

这道题相当于是上一题的进阶版了,其实仔细想想我们能少去很多条件判断,我们在中学想必都学过周期函数,要对一个周期函数研究,当然在单个周期里面对函数研究,这题由题意可得,每一个有规律的周期是2K,所以如果我们循环是以2K为周期,那显然就很简单了;

剑指Offer 05.替换空格

这道题也是很经典的一道题目了

首先最直接的方法,用库函数搞定

当然,我们也可以用双指针搞定

151.翻转字符串里的单词

题目链接如下:151. 反转字符串中的单词

一种解题思路是,我们先对整个字符串翻转,然后再对里面的每个单词翻转,这样就得到正确的单词顺序,最后再想办法处理空格问题

当然思路很简单,其实最难的是对空格的处理

为了训练的效果,我们要求空间是0(1)的,这意味不能开一个新字符串

所以我们还是用双指针吧

剑指Offer58-II.左旋转字符串

题目链接:剑指 Offer 58 - II. 左旋转字符串

这道题好像没有空间要求也,那我直接开一个新字符串那就是简简单单

和上一题差不多,整体翻转加局部翻转可以玩出很多花样,而且这题还没有空格问题

这题思路就是

  1. 反转区间为前n的子串

  1. 反转区间为n到末尾的子串

  1. 反转整个字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr丶锤子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值