剑指Offer专项突击版题解二

11.找出01个数相等的最长子数组

思想:前缀和+map一层遍历

12.左右两边子数组和相等

思想:利用前缀和+一层遍历

13.二维矩阵的和

思想:二维前缀和

14.字符串中的变位词

思想:判断一个字符串中是否有另一个字符串的变种,因为规定了只有小写字符,go语言中直接用[26]int判断两个字符串是否相等

15.字符串中所有的变位词

和14题的思想一样。

16.不含重复字符的最长子字符串

思想:滑动窗口,用一个map[byte]int记录该字符串出现的下标,要值得注意的是,如果该字符存在的话,并且取出的index并且在[left,right]之内才能保证有效。

17.含有所有字符的最短字符

思路:采用滑动窗口的思想,给定a、b串,如何判断a的子串包含与b串呢,用map或者用数组[52]int{},这里有一个优化点,就是只有存在b中的字符才会对a的字符进行记录判断。

18.有效的回文

思路:字符串中字母和数字有效,并忽略字母的大小写,判断字符串是否是回文,双指针法。

19.最多删除一个字符得到回文

思路:dfs或者result(left + 1 , right)||result(left , right - 1)

20.统计字符串的子回文个数

思路:暴力遍历即可

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿联爱学习

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

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

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

打赏作者

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

抵扣说明:

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

余额充值