万卷网 > 题目详情
题型:编程题

等价消除

题目描述

小 A 有一个仅包含小写英文字母的字符串 S。

对于一个字符串,如果能通过每次删去其中两个相同字符的方式,将这个字符串变为空串,那么称这个字符串是可以被等价消除的。

小 A 想知道 S有多少子串是可以被等价消除的。

一个字符串 S'是S 的子串,当且仅当删去 S的某个可以为空的前缀和某个可以为空的后缀之后,可以得到 S'。

输入格式

第一行,一个正整数|S| ,表示字符串S 的长度。

第二行,一个仅包含小写英文字母的字符串 S。

输出格式

一行,一个整数,表示答案。


输入样例 1

7
aaaaabb

输出样例 1

9

输入样例 2

9
babacabab

输出样例 2

2

数据范围

对于20 % 的测试点,保证S 中仅包含 a 和 b 两种字符。

对于另外20 % 的测试点,保证 1≤|S|≤2000。

对于所有测试点,保证 1≤|S|≤2*105 。

更新时间:2025-06-20 12:03:30 |
【知识点】 CCF—GESP Python七级

相似题推荐

判断题

Python语言中,表达式 3 ^ 2 的结果类型为 int ,值为 1 。

A.正确 B.错误
2026-07-18
判断题

一个包含 V 个顶点的连通无向图,其任何一棵生成树都恰好包含 V-1 条边。

A.正确 B.错误
2026-07-18
单选题

下面这个有向图的强连通分量的个数是(  )。

A.

3

B.

4

C.

5

D.

6

2026-07-18
单选题

下面程序的运行结果为( )。

def query(n, a, x): 
    left = 0 
    right = n 
    while left < right: 
        mid = left + (right - left) // 2 
        if a[mid] >= x: 
            right = mid 
        else: 
            left = mid + left 
    if left == n: 
        return -1 
    return left 
if __name__ == "__main__": 
    n = 10 
    x = 3 
    num = [1, 2, 2, 3, 3, 4, 5, 5, 6, 7] 
    result = query(n, num, x) 
    print(result)
A.

2

B.

3

C.

4

D.

5

2026-07-18
判断题

使用 math 模块中的正弦函数,表达式 math.sin(90) 的结果类型为 double ,值约为 1 。

A.正确 B.错误
2026-07-18
公众号
客服 反馈
顶部