代码随想录-字符串

344.反转字符串

双指针法-两指针指向头尾,交换字符,在移动指针。

 541.反转字符串二

模拟反转规则(有点不好理解)

在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。

剑指offer 05.替换空格

双指针法

统计空格个数,再扩充数组大小,从后往前遍历,替换空格。

 151.反转字符串中的单词

思路:

  • 移除多余的空格

           快慢指针。去除字符串前面的空格,去除字符串中间多余的空格,去除末尾的空格,再重新设置大小。

  • 将整个字符串反转
  • 将每个单词反转

补充:erase()函数,erase(n)删除索引n处的元素,erase(n,m)删除从n开始的m个元素。

28.找出字符串中第一个匹配的子串

暴力匹配,让字符串needle与字符串haystack的所有长度为m的字符串匹配一次。

KMP看不懂

459.重复的子字符串

暴力解法:如果一个长度为n的字符串s可以由他的一个长度为n'的子串s'重复多次构成,那么:

  • n一定是n'的倍数
  • s'一定的s的前缀
  • 对于任意的i∈[n',n),有s[i]=s[i-n']

也就是说,s中长度为n'的前缀就是s',并且在这之后的每一个位置上的字符s[i],都需要与他之前的第n'个字符s[i-n']相同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值