题目描述
有一个长度为 n 的字符串 S。其只包含有大写字母。
小 A 将 S 进行翻转后,得到另一个字符串 S′。两个字符串 S 与 S′ 对应配对。例如说,对于 S=ATCGT,则有 S′=TGCTA,S 与 S′ 进行配对。
对于两个字符串 S,S′ 的第 i(1≤i≤n)个字母,配对规则如下:
- 定义 A 与 T,C 与 G 为可以配对的字母。
- 如果 Si 与 Si′ 为可以配对的字母,那么该字符串的稳定性增加 i。
- 如果 Si 或者 Si′ 中任意一方出现非 A,T,C,G 的字母,则整个字符串的稳定性将直接为 0。
现在给定 T 个字符串 S,对每一个字符串,询问若用其翻转再进行配对,其稳定性将如何。
输入格式
第一行输入一个正整数 T,表示给定多少个字符串。对于每一个字符串:
- 第一行输入一个正整数 n,表示字符串的长度;
- 第二行输入一个字符串 S,表示该字符串。
输出格式
对于每个字符串,输出一行一个整数,表示若用其翻转再进行配对,其稳定性将如何。
提示
【样例解释】
- 对于第一个字符串,S=ATCGT,S′=TGCTA。标红色的一组与蓝色的一组为可以配对的字母。它们分别是 S 的第 1 个字母和第 5 个字母,因此稳定性是 1+5=6。
- 对于第二个字符串,S=ACATGT,S′=TGTACA,每个对应位置上的字母都可以配对,因此稳定性是 1+2+3+⋯+6=21
- 对于第三条字符串,出现了非 A,T,C,G 的字母 U,因此稳定性为 0。
【数据范围】
对于所有数据,保证:1≤T≤5,1≤n≤105,S 中出现的所有字母保证为大写英语字母。