代码随想录算法训练营第六天 | ● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字 总结

 题目: ● 344.反转字符串

题目链接/文章讲解/视频讲解:代码随想录

 第一想法:这道题直接使用了双指针,进行反转;

题目:● 541. 反转字符串II

题目链接/文章讲解:代码随想录

看完代码随想录之后的想法:这道题,进行反转的时候,我们仅仅对于for进行操作就行,对i + k

进行判断,如果i + k < size 的时候,我们会发现我们需要对 i 到 i + k 进行反转,否则 我们需要对i 到 size 进行反转,每次在i 到 i + 2k处理完毕后,我们就需要i向后移动2k,来进行下一次的操作,直到i出界;当然,反转字符串的操作可以直接调用库函数,因为我们自己写的反转函数和库函数的功能一样,对于这种基本的函数,我们在熟悉掌握的时候直接可以进行调用;

题目:剑指Offer 05.替换空格

题目链接/文章讲解:代码随想录

看完代码随想录之后的想法:首先用count记录空格的数量,然后扩充数组的大小,扩充后的大小为原来的大小+2倍的空格的数量,然后利用双指针进行操作,left指针为原数组的尾部,right定于为新数组的尾部;然后进行操作,不遇到空格的时候直接把left的值赋值给righ的值;遇到空格的时候把%20一个一个的放到right上;直到遍历结束;

题目: ● 151.翻转字符串里的单词

题目链接/文章讲解/视频讲解:代码随想录

首先去掉首部的空格,和尾部的空格;然后在把单词之间空格数量大于一个的删除到只有一个;

然后在反转整个字符串,然后再反转每一个单词;

实现的困难:我们进行删除多余的空格的时候,我们不能够直接使用erase库函数,因为我们需要for遍历整个数组然后,进行erase,时间复杂度需要n方;因此我们需要使用双指针进行操作;

 题目: ● 剑指Offer58-II.左旋转字 

题目链接/文章讲解/视频讲解:代码随想录

先把左部分反转,然后把右部分反转,最后再把整个字符串进行翻转;

就可以实现目标;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值