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 仅包含小写英文字母。
https://leetcode.cn/problems/partition-string/