CF1238D.AB-string
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
The string t1t2…tk is good if each letter of this string belongs to at least one palindrome of length greater than 1.
A palindrome is a string that reads the same backward as forward. For example, the strings A, BAB, ABBA, BAABBBAAB are palindromes, but the strings AB, ABBBAA, BBBA are not.
Here are some examples of good strings:
- t = AABBB (letters t1, t2 belong to palindrome t1…t2 and letters t3, t4, t5 belong to palindrome t3…t5);
- t = ABAA (letters t1, t2, t3 belong to palindrome t1…t3 and letter t4 belongs to palindrome t3…t4);
- t = AAAAA (all letters belong to palindrome t1…t5);
You are given a string s of length n, consisting of only letters A and B.
You have to calculate the number of good substrings of string s.
字符串 t1t2…tk 被称为“好字符串”,当且仅当该字符串中的每个字母都至少属于一个长度大于 1 的回文子串。
回文串是指正读与反读都相同的字符串。例如,字符串 A、BAB、ABBA、BAABBBAAB 是回文串,但 AB、ABBBAA、BBBA 不是回文串。
以下是若干“好字符串”的例子:
- t = AABBB(字母 t1、t2 属于回文子串 t1…t2,字母 t3、t4、t5 属于回文子串 t3…t5);
- t = ABAA(字母 t1、t2、t3 属于回文子串 t1…t3,字母 t4 属于回文子串 t3…t4);
- t = AAAAA(所有字母均属于回文子串 t1…t5);
给定一个长度为 n 的字符串 s,其仅由字母 A 和 B 组成。
你需要计算字符串 s 中“好字符串”子串的个数。
输入格式
The first line contains one integer n (1≤n≤3⋅105) — the length of the string s.
The second line contains the string s, consisting of letters A and B.
第一行包含一个整数 n(1≤n≤3⋅105)—— 字符串 s 的长度。
第二行包含字符串 s,由字母 A 和 B 组成。
输出格式
Print one integer — the number of good substrings of string s.
输出一个整数——字符串 s 中“好子串”的数量。
输入输出样例
输入#1
5 AABBB
输出#1
6
输入#2
3 AAA
输出#2
3
输入#3
7 AAABABB
输出#3
15
说明/提示
In the first test case there are six good substrings: s1…s2, s1…s4, s1…s5, s3…s4, s3…s5 and s4…s5.
In the second test case there are three good substrings: s1…s2, s1…s3 and s2…s3.
在第一个测试用例中,有六个“好”子串:s1…s2、s1…s4、s1…s5、s3…s4、s3…s5 和 s4…s5。
在第二个测试用例中,有三个“好”子串:s1…s2、s1…s3 和 s2…s3。
输入解题思路,AI测评打分。不知道怎么写?