150. 极长连续段的权值
内存限制:256 MB
时间限制:1.000 S
题目描述
小红定义一个字符串的权值为:极长“连续段”的数量。所谓极长“连续段”,指尽可能长的一段字符全部相同的连续子串。例如,"1100111" 共有 3 个连续段:"11"、"00" 和 "111",所以权值为 3。
现在小红拿到了一个 01 串,小红希望你帮她求出所有子串的权值之和。
输入
第一行输入一个正整数 n(1 <= n <= 200000),代表字符串的长度。
第二行输入一个长度为 n,且仅由'0'和'1'两种字符组成的字符串。
输出
一个正整数,代表所有子串的权值之和。
样例输入 复制
4
1101
样例输出 复制
17
提示
4 个长度为 1 的子串的权值均为 1。
长度为 2 的子串中,"11" 的权值为 1,"10" 和 "01" 的权值均为 2。
长度为 3 的子串中,"110" 的权值为 2,"101" 的权值为 3。
长度为 4 的子串 "1101" 的权值为 3。
总权值为 1 * 4 + 1 + 2 + 2 + 2 + 3 + 3 = 17。