题目描述
题目描述
题解
题解
提交记录
提交记录
中等

给你一个字符串 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 仅包含小写英文字母。
 
代码
代码
测试用例
测试用例
测试结果
测试结果