a-Good String

TimeLimit:2000MS  MemoryLimit:256MB
64-bit integer IO format:%I64d
未提交 | 登录后收藏
Problem Description

You are given a string s[1…n] consisting of lowercase Latin letters. It is guaranteed that n=2k for some integer k≥0.


The string s[1…n] is called c-good if at least one of the following three conditions is satisfied:


The length of s is 1, and it consists of the character c (i.e. s1=c);

The length of s is greater than 1, the first half of the string consists of only the character c (i.e. s1=s2=⋯=sn2=c) and the second half of the string (i.e. the string sn2+1sn2+2…sn) is a (c+1)-good string;

The length of s is greater than 1, the second half of the string consists of only the character c (i.e. sn2+1=sn2+2=⋯=sn=c) and the first half of the string (i.e. the string s1s2…sn2) is a (c+1)-good string.

For example: "aabc" is 'a'-good, "ffgheeee" is 'e'-good.


In one move, you can choose one index i from 1 to n and replace si with any lowercase Latin letter (any character from 'a' to 'z').


Your task is to find the minimum number of moves required to obtain an 'a'-good string from s (i.e. c-good string for c= 'a'). It is guaranteed that the answer always exists.


You have to answer t independent test cases.


Another example of an 'a'-good string is as follows. Consider the string s="cdbbaaaa". It is an 'a'-good string, because:


the second half of the string ("aaaa") consists of only the character 'a';

the first half of the string ("cdbb") is 'b'-good string, because:

the second half of the string ("bb") consists of only the character 'b';

the first half of the string ("cd") is 'c'-good string, because:

the first half of the string ("c") consists of only the character 'c';

the second half of the string ("d") is 'd'-good string.


Input

The first line of the input contains one integer t (1≤t≤2⋅10^4) — the number of test cases. Then t test cases follow.


The first line of the test case contains one integer n (1≤n≤131 072) — the length of s. It is guaranteed that n=2k for some integer k≥0. The second line of the test case contains the string s consisting of n lowercase Latin letters.


It is guaranteed that the sum of n does not exceed 2⋅10^5 (∑n≤2⋅10^5).


Output

For each test case, print the answer — the minimum number of moves required to obtain an 'a'-good string from s (i.e. c-good string with c= 'a'). It is guaranteed that the answer exists.

SampleInput
6
8
bbdcaaaa
8
asdfghjk
8
ceaaaabb
8
bbaaddcc
1
z
2
ac
SampleOutput
0
7
4
5
1
1
Submit
题目统计信息详细
总AC数1
通过人数1
尝试人数1
总提交量2
AC率50.00%
AC该题后可以添加标签
贴完标签可以获得20ACB。
并且可以获得本题所有提交代码查看权限。
点击标题可以显示标签。
如果你还没认真思考过这题,请不要查看标签
如果您已经通过了该题,请务为该题贴上标签

T^T Online Judge

[BUG反馈] [FAQ] [闽ICP备17026590号-1]
当前版本:3.24 系统时间: