def f(l,r,c): #минимальное кол-во ходов, чтобы сделать строку s[l:r] c-хорошей
    global s
    global p
    idx = ord(c)-ord('a')
    n = r-l
    if n==1:
        return 1-int(s[l-1]==c)
    return min((n//2-(p[l-1+n//2][idx]-p[l-1][idx])+f(r-n//2,r,chr(ord(c)+1))),(f(l,l+n//2,chr(ord(c)+1))+n//2-(p[r-1][idx]-p[r-1-n//2][idx])))


for _ in range(int(input())):
    n = int(input())
    s = input()
    #p[i][letter] - сколько раз буква letter встречается в префиксе s[1:i+1]
    p = [[0]*(26) for i in range(n+1)]
    for i in range(1,n+1):
        for letter in range(26):
            p[i][letter] = p[i-1][letter]
        p[i][ord(s[i-1])-ord('a')]+=1
    print(f(1,n+1,'a'))