解题思路:
直接暴力只能过test1
如何能更快的判断回文字母呢?建立数组,在每个位置存储所有字母出现次数的前缀和
代码:
from collections import defaultdict
T=int(input())
for tt in range(T):
N,Q=[int(s) for s in input().split(' ')]
array=input()
ans=0
pre_sum=[[0 for _ in range(26)]]
for i in range(N):
count=pre_sum[-1].copy()
count[ord(array[i])-65]+=1
pre_sum.append(count)
for qq in range(Q):
l,r=[int(s) for s in input().split(' ')]
if l==r:
ans+=1
else:
cur=0
for i in range(26):
if pre_sum[r][i]!=0:
if (pre_sum[r][i]-pre_sum[l-1][i])&1:
cur+=1
if cur==0 or cur==1:
ans+=1
print('Case #{}: {}'.format(tt+1,ans))