#c22602. a-Good String

a-Good String

a-Good String

题目来源

CF 1385D

题目描述

给你一个长度为 nn 的由小写字母组成的字符串 ss,保证 n=2kn=2^k,其中 kk 为大于等于零的整数。

一个非空字符串 ss 被称为 cc-goodgood(cc 为 a...za...z 中的某个字母)的,需要满足下列三个条件之一:

  • ss 长度为 11,且只含有 cc 字符;
  • ss 长度大于 11,且 ss 的前一半全为字符 cc,后一半为 next(c)next(c)-goodgood 的字符串,其中 next(c)next(c) 表示 cc 后面的那一个字母;
  • ss 长度大于 11,且 ss 的前一半为 next(c)next(c)-goodgood 的字符串,后一半全为字符 cc;

例如 aabc 是 a-goodgood 的,ffgheeee 是 e-goodgood 的。

对于给定的字符串 ss,请求出最少改变 ss 中几个字符可以把它变成 a-goodgood 的字符串。

输入格式

输入有多组询问。

第一行一个整数 TT 表示数据组数。

对于每组数据包含两行,第一行一个整数 nn,第二行一个长度为 nn 的字符串 ss。

输出格式

对于每组数据,输出一行一个整数表示答案。

样例输入

5
8
bbdcaaaa
8
asdfghjk
8
ceaaaabb
8
bbaaddcc
1
z

样例输出

0
7
4
5
1

数据范围

对于 100%100\% 的数据,保证 1≤T≤5,1≤n≤1310721\leq T\leq 5, 1\leq n\leq 131072,保证 n=2kn=2^k,其中 kk 为大于等于零的整数。