给你一个字符串 s
,按照以下步骤将其分割为 互不相同的段 :
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
仅包含小写英文字母。