1. 3597. 分割字符串

3597. 分割字符串 - 力扣(LeetCode)
3597. 分割字符串 - 给你一个字符串 s,按照以下步骤将其分割为 互不相同的段 : * 从下标 0 开始构建一个段。 * 逐字符扩展当前段,直到该段之前未曾出现过。 * 只要当前段是唯一的,就将其加入段列表,标记为已经出现过,并从下一个下标开始构建新的段。 * 重复上述步骤,直到处理完整个字符串 s。 返回字符串数组 segments,其中 segments[i] 表示创建的第 i 段。   示例 1: 输入: s = "abbccccd" 输出: ["a","b","bc","c","cc","d"] 解释: 下标 添加后的段 已经出现过的段 当前段是否已经出现过? 新段 更新后已经出现过的段 0 "a" [] 否 "" ["a"] 1 "b" ["a"] 否 "" ["a", "b"] 2 "b" ["a", "b"] 是 "b" ["a", "b"] 3 "bc" ["a", "b"] 否 "" ["a", "b", "bc"] 4 "c" ["a", "b", "bc"] 否 "" ["a", "b", "bc", "c"] 5 "c" ["a", "b", "bc", "c"] 是 "c" ["a", "b", "bc", "c"] 6 "cc" ["a", "b", "bc", "c"] 否 "" ["a", "b", "bc", "c", "cc"] 7 "d" ["a", "b", "bc", "c", "cc"] 否 "" ["a", "b", "bc", "c", "cc", "d"] 因此,最终输出为 ["a", "b", "bc", "c", "cc", "d"]。 示例 2: 输入: s = "aaaa" 输出: ["a","aa"] 解释: 下标 添加后的段 已经出现过的段 当前段是否已经出现过? 新段 更新后已经出现过的段 0 "a" [] 否 "" ["a"] 1 "a" ["a"] 是 "a" ["a"] 2 "aa" ["a"] 否 "" ["a", "aa"] 3 "a" ["a", "aa"] 是 "a" ["a", "aa"] 因此,最终输出为 ["a", "aa"]。   提示: * 1 <= s.length <= 105 * s 仅包含小写英文字母。
3597. 分割字符串 - 力扣(LeetCode)
代码

2. NC111 最大数

代码

3. 统计射击成绩

代码

4. 字符串序列判定

解题思路
我们可以用双指针来做:
  • 指针 i 指向字符串 S
  • 指针 j 指向字符串 L
  • 从左到右遍历 L,当 L[j] == S[i],就移动 i,否则只移动 j
  • 如果最终 i == len(S),说明 S 中所有字符都在 L 中按顺序出现过,i < len(S)不行
code
 
Loading...
Leoy
Leoy
一个挣扎的凝聚态物理人🍚
Latest posts
Python笔记
2025-7-22
漫威观影
2025-6-12
凝聚态学习笔记
2025-6-12
示例文章
2025-6-12
网址链接
2025-4-11
你是人间的四月天
2025-4-2
Announcement
🎉我的博客网站建立啦🎉
--- 谢谢大家的捧场 ---
👏欢迎致电交流👏
📆2025/03/16