【Leetcode Daily】3597分割字符串
发表于|更新于|力扣日常 | LeetcodeDaily
|总字数:198|阅读时长:1分钟|浏览量:
题目浅析
想查看原题可以点击题目链接。
简单地说,就是给一个字符串,从中按规则从左到右分出互不相同的段。
思路分享
- 本题通过哈希表也能快速去重来分别互不相同的段,不过通过字典树也能实现,在 python 能轻松地通过 dict 模拟每个节点(在不需要其它辅助信息的时候)
代码解答(强烈建议自行解答后再看)
- 参考题解
1 | class Solution: |
文章作者: 陆爻齐-LuYaoQi
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LuYaoQi's Blogs!
相关推荐

2025-12-22
【Leetcode Daily】208实现Trie(前缀树)
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个字符串数组,并且逐个做 insert 或者 search 操作,还有判断搜索是否为前缀。 思路分享 题目的需求就是经典的字典树可以做到的事,现如今的关键词提示也有用到其中原理。字典树可以看作多叉树,不过每个节点可能会存些信息辅助查询搜索,有的节点可能是代表一个单词的末尾,也可能代表单词的中间。 https://leetcode.cn/problems/implement-trie-prefix-tree/solutions/2993894/cong-er-cha-shu-dao-er-shi-liu-cha-shu-p-xsj4/ 代码解答(强烈建议自行解答后再看) 参考题解 123456789101112131415161718192021222324252627282930313233343536373839class Node: __slots__ = "son", "end" def __init__(self): self.son...

2025-12-23
【Leetcode Daily】648单词替换
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个词典,这个词典是一系列词根(前缀),现在给一个字符串,请把其中所有的可由词典词根衍生的单词还原为词根。 思路分享 普通方法,通过哈希来检验每个单词的前面是否在词典中;字典树则是利用其查找,遍历每个单词的字符,一旦遇到某个词根的前缀就直接还原。 以及其实可以不用定义 Node 类,可以像官方题解一样,在末端的 son 加一个不寻常的字符,比如 # 来代表此处为某个词的末端。 https://leetcode.cn/problems/replace-words/solutions/1649109/dan-ci-ti-huan-by-leetcode-solution-pl6v/ 代码解答(强烈建议自行解答后再看) 参考题解 12345678910111213141516171819202122232425262728293031323334class Node: def __init__(self): self.son = {} self.end =...

2025-12-24
【Leetcode Daily】720词典中最长的单词
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个词典,规定合法的单词是存在另一个单词右侧加一个字母所得(单字母直接合法),求合法单词中长度最长且字典序最小的。 思路分享 本题有个没有明说的要求,是要必须从单字母开始,如果有一个 rm,还是没有 r,那么 rm 后面衍生的都不合法。 老样子,通过哈希表和切片可以实现快速查找一个单词的前缀是否存在。此外,通过字典树则能直接往后筛选,参考题解是一边建树一边筛选记录,实际上也可以先把字典树建好,然后用单字母路线向下遍历,需要整条路线都是末节点才算是合法答案(即都是一个个字母加起来的) https://leetcode.cn/problems/longest-word-in-dictionary/solutions/1342188/ci-dian-zhong-zui-chang-de-dan-ci-by-lee-k5gj/ 代码解答(强烈建议自行解答后再看) 参考题解 123456789101112131415161718192021222324252627282930class Solution: ...

2025-04-24
【Leetcode Daily】1052爱生气的书店老板
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给两个整型数组,以及一个整数 minutes,按某个要求(具体看原题,难以简化),求一个数组在另一个数组和 minutes 约束下的求的最大值。 思路分享 陆爻齐的思路是计算窗口内(也就是冷静的分钟)不满意生气离开的最大值,加上不生气的心情值,再减去所有生气离开的数值得出答案,但由于思想复杂了点,所以略微修改模板结构,也就是下面陆爻齐的答案。 参照灵茶山艾府,其实只要区分开两部分相加即可,然后直接参照模板。这两部分,一个是不生气的值,一个是生气下的值,取生气下最大值即可。这样就不用像上面一样多一次运算。 https://leetcode.cn/problems/grumpy-bookstore-owner/solutions/2751888/ding-chang-hua-dong-chuang-kou-fu-ti-dan-rch7/ 代码解答(强烈建议自行解答后再看) 陆爻齐的解法 12345678910111213141516171819202122232425class Solution...

2025-04-28
【Leetcode Daily】1297子串的最大出现次数
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个字符串,求满足要求的子串中,出现最多的次数。该要求为 1. 内部的字母数量小于 maxLetters;2. 整个字符串的长度在 minSize 和 maxSize 之间(闭区间)。 思路分享 该题的难度在于干扰项 maxSize,由于求子串尽可能多的出现,所以该子串的长度必然越小越好,就是 minSize。 就是定长滑动窗口(【Leetcode Daily】1456定长子串中元音的最大数目),有了个字母数量不大于 maxLetters 的限制,再用哈希统计满足要求字符串出现的次数即可。 代码解答(强烈建议自行解答后再看) 陆爻齐的解法 1234567891011121314151617181920212223242526272829class Solution {public: int maxFreq(string s, int maxLetters, int minSize, int maxSize) { vector<int>...

2025-04-23
【Leetcode Daily】1423可获得的最大点数
题目浅析 想查看原题可以点击题目链接。 简单地说,就是给一个整型数组和一个数字 k,求按照某种方式下获取卡牌所得的最大点数。该方式为每次只能够取得最左或者最右的卡牌。 思路分享 逆向思路,由于每次拿卡牌只拿两侧,所以中间部分是连续的,可以视为一个定长滑动窗口,只不过是求窗口内的最小和,通过这个数值得到答案。滑动窗口模板沿用【Leetcode Daily】1456定长子串中元音的最大数目 正向思路,穷举所有组合可能。 https://leetcode.cn/problems/maximum-points-you-can-obtain-from-cards/solutions/2551432/liang-chong-fang-fa-ni-xiang-si-wei-zhen-e3gb/ 代码解答(强烈建议自行解答后再看) 逆向 12345678910111213141516171819202122232425class Solution {public: int maxScore(vector<int>& cardPoints,...
公告
希望你我都能得偿所愿
PS:相对流水账的文章只能在归档找得到
系列文章
