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.统计字符串的子回文个数
思路:暴力遍历即可