问题 4602 --删除子串

4602: 删除子串★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 146  解决: 110
[提交][状态][命题人:]

题目描述

字符串的子串是该字符串的连续子序列。所以,字符串“forces”是字符串“codeforces”的子串,但字符串“coder”不是。

您将获得一个长度为n的字符串s,该字符串仅由小写字母组成,且至少有两个不同的字符。

请计算从该字符串中完全删除一个子字符串,以便所有剩余字符都相等(不同字符的数量为0或1),求这样的做法有多少种。

aaa和a字符全部相等(都为a),aa和空字符也算作相等(只有一个不同字符)。

请注意,必须至少删除一个字符,也可以删除整个字符串。

因为答案可能相当大(虽然不是很大),所以以998244353为单位打印。

输入

输入的第一行为一个整数n(2≤n≤210^5-字符串s的长度。

输入的第二行为长度为n的字符串s,该字符串仅由小写字母组成,且s中至少有两个不同的字符

输出

打印一个整数-满足上述方法的数量 mod 998244353。

样例输入
Copy
4
abaa
样例输出
Copy
6

提示

样例2输入

7
aacdeee

样例2输出

6

样例3输入

2
az

样例3输出

3

注释:

s[l;r]是从位置l到位置r(包含l和r)的s的子串。

然后在第一个示例中,可以删除以下子字符串:

· s[1;2];

· s[1;3];

· s[1;4];

· s[2;2];

· s[2;3];

· s[2;4].

在第二个示例中,可以删除以下子字符串:

· s[1;4];

· s[1;5];

· s[1;6];

· s[1;7];

· s[2;7];

· s[3;7].

在第三个示例中,可以删除以下子字符串:

· s[1;1];

· s[1;2];

· s[2;2].

来源

[提交][状态]