会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员后可解锁完整内容。
解题思路
问题转化
字符串 S 的所有非空子串,若其 首现序列 严格递增,则称为优雅子串。
首现序列是指:从左向右扫描子串,保留每种字符第一次出现的位置,按原顺序拼接得到的字符串。严格递增意味着序列中后一个字符在字母表中的顺序大于前一个字符。
核心观察
对于一个左端点 left,我们希望找到最大的右端点 limit,使得所有以 left 开头、右端点 r ≤ limit 的子串 S[left..r] 都是优雅的。
当右端点逐渐向右扩展时,新字符的加入可能会破坏首现序列的递增性。若某个字符在更靠右的位置首次出现,且它的字母序小于等于已出现的某个字符,则不再满足严格递增。