这道题跟 构建回文串检测 的思路很像,因为都是统计字符个数,然后看构造回文串的条件。因为是构造最长的回文串,所以思路略微有点不同,碰到字符频次为奇数的需要加上其频次 - 1 的长度,然后有奇数频次的字符,则可以在中间再加上一个字符。func longestPalindrome(s string) int { cnt := map[byte]int{} for i := ran...
Articles in the category of Leetcode
- Home
- Leetcode
这道题有一个关键条件就是 l..r 之间的字符可以重排,那么我们只需要关注字符频次满足回文串要求即可。长度为偶数的情况下,需要满足所有的字符频次为偶数。长...
这道题用异或计算就可以解决,因为只缺失一个数字,那么对应的下标和数字都会抵消,剩下的一个就是答案func missingNumber(nums []int) int { res := 0 for i, v := range nums { res ^= i ^ v } res ^= len(nums) return res }
首先我们需要扩展区间,然后再降维,就可以满足概率分布扩展区间,调用两个 rand7 就能到 [1,49],为了 [1,10] 我们需要舍去 41-49,剩...
最小覆盖子串这道题是需要从 s 中找到覆盖 t 中所有字符的最短子串,所以我们首先需要维护一个 map 去保存对应的字符出现次数,再用一个变量保存需要的字符数量,这样在搜索的时候可以快速知道是否满足要求。利用滑动窗口,先扩张右边界,然后记数是否满足覆盖 t 的所有字符,如果满足则收缩左边界到刚好满足,然后重新将左边界导致不满足条件的字符纳入 map,然后重复这个过程即可。func minWi...