day 8 字符串 344) 541) 卡码 54)151)

文章讲述了在编程中如何通过双指针技巧高效地解决字符串反转、数字替换、单词反转等问题,强调了在处理字符串操作时灵活运用双指针方法的重要性。
摘要由CSDN通过智能技术生成

344)反转字符串 

挺简单的 双指针何时停止循环 的条件小小卡顿了一下; 

541) 翻转字符串II

遍历上用的i+=(2*k)思路没有问题 但是判断剩余值的情况思路上一开始想用取余的方式 来计算剩下字符数和size的大小关系来比对

看解析直接用循环结束 只需要 用替换开始字段位置+k和s.size()比较就能完成

reverse(s.begin()+i,s.begin()+i+k);

这一行代码没想到 原来还想着带一个指针j 来指向交换的后面那个元素 这个这直接一步到位了

  卡码 54)替换数字

只想到到了到用ASCII来判断数字  创建一个string数组 然后把number换成一个字符串元素

没有想到用双指针+扩展空间  看了前半段思路就以为要正序插入 完全没想到还要移动后面的元素增加空间

151)反转单词

没有思路 整体操作复杂 整理一下整体思路 核心->两极反转 全字符串反转 再识别每一个单词 达到要求

1)识别单词 -- 识别单词就是靠的空格键隔开  识别单词有两种第一种是第一个单词 前面不需要空格来隔断;第二种是后续单词 先一个空格隔断再开始新的单词

处理::用双指针方法快指针先遍历 在在遇到空格时 在用慢指针判断是否是第一个单词 以及用慢指针来增加空格区分单词 到此整个字符串反转并且区分开了每一个单词;

2)接下来反转每个单词里的字符 反转为正确的单词顺序;处理同样是双指针解决 start是每个单词开端 每次循环后都赋值为i+1 衔接下一个单词;

卡码55) 有了上面题目的学习这道题很容易就做出来了 没啥难度了连空格都不需要判断;

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值