题目要求统计一个字符串中所有满足条件的非空子串数量。条件是:子串去重后,其字符按照相对顺序排列在字典序上是一个单调递增的字符串。
例如,字符串 aabca
去重后为 abc
,满足字典序单调递增,因此 aabca
是一个好字符串。我们需要计算所有这样的子串数量。
s[left]
,我们需要找到以它为左端点的所有满足条件的子串。这些子串的右端点必须满足以下条件:小红认为一个字符串是好字符串当且仅当这个字符串去重后按照相对顺序排列在字典序上是一个单调递增字符串。
例如: s=aabca,去重后为abc,满足字典序单调递增。
现在小红有一个长度为n的字符串t,请你帮助她计算有多少个非空子串是好字符串。
去重:每种字符只保留第一个出现的位置。
子串:子串是指一个字符串中的连续部分。
第一行一个整数n(1≤n≤105),表示字符串长度。
第二行一个长度为n的字符串t,保证输入只含小写字母。
一个整数,表示t中有多少个子串是好字符串。
输入
5
aabca
输出
13