给你一个字符串 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 <= 105s 仅包含小写英文字母。