/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.*;
import java.math.BigInteger;
import java.util.*;

public class test1{

	static int recur(char[] a, char currChar, int start, int end){
		int lRem=0, rRem=0;
		int mid = (start+end)/2;
		for(int i=start; i<=end; i++){
			if(a[i]!=currChar && i<=mid)
				lRem++;
			else if(a[i]!=currChar)
				rRem++;
		}

		if(start==end)
			return a[start]==currChar ? 0 : 1;
		
		// if(currChar=='d')
		// 	return Math.min(lRem, rRem);

		 int l = recur(a, (char)(currChar+1), start, mid) + rRem;
		 int r = recur(a, (char)(currChar+1), mid+1, end) + lRem;
		 return l < r ? l : r;

		// if(lRem<rRem)
		// 	return recur(a, level+1, mid, end)+ lRem;
		// else
		// 	return recur(a, level+1, start, mid) + rRem;
	}

    public static void main(String[] args) throws IOException{
        long startTime = System.currentTimeMillis();
        Reader sc = new Reader();
        int t = sc.nextInt();
        while(t-- > 0){
			int n=sc.nextInt();
			sc.read();
			String s =sc.readLine();
			char[] a=s.toCharArray();
//                          for(char c : s.toCharArray()){
//                                System.out.print(c+" ");
//                          }
//			 for(int i=0; i<=n; i++){
//			 	a[i]=s.charAt(i);
//                                System.out.print("-"+a[i]);
//                         }
			if(n==1)
				System.out.println(a[0]=='a' ? 0 : 1);
			else if(n==2){
				int r=0;
				if(a[0]!='a' && a[1]!='a')	r++;
				if(a[0]!='b' && a[1]!='b')	r++;
				System.out.println(r);
			}
			else
				System.out.println(recur(a, 'a', 0, n-1));
        }   
        long endTime = System.currentTimeMillis();
    }

    static class Reader {
	    final private int BUFFER_SIZE = 1 << 16;
	    private DataInputStream din;
	    private byte[] buffer;
	    private int bufferPointer, bytesRead;

	    public Reader() {
	      din = new DataInputStream(System.in);
	      buffer = new byte[BUFFER_SIZE];
	      bufferPointer = bytesRead = 0;
	    }

	    public Reader(String file_name) throws IOException {
	      din = new DataInputStream(new FileInputStream(file_name));
	      buffer = new byte[BUFFER_SIZE];
	      bufferPointer = bytesRead = 0;
	    }

	    public String readLine() throws IOException {
	      byte[] buf = new byte[200002];
	      int cnt = 0, c;
	      while ((c = read()) != -1) {
	        if (c == '\n') break;
	        buf[cnt++] = (byte) c;
	      }
	      return new String(buf, 0, cnt);
	    }

	    public int nextInt() throws IOException {
	      int ret = 0;
	      byte c = read();
	      while (c <= ' ') c = read();
	      boolean neg = (c == '-');
	      if (neg) c = read();
	      do {
	        ret = ret * 10 + c - '0';
	      } while ((c = read()) >= '0' && c <= '9');
	      if (neg) return -ret;
	      return ret;
	    }

	    public long nextLong() throws IOException {
	      long ret = 0;
	      byte c = read();
	      while (c <= ' ') c = read();
	      boolean neg = (c == '-');
	      if (neg) c = read();
	      do {
	        ret = ret * 10 + c - '0';
	      } while ((c = read()) >= '0' && c <= '9');
	      if (neg) return -ret;
	      return ret;
	    }

	    public double nextDouble() throws IOException {
	      double ret = 0, div = 1;
	      byte c = read();
	      while (c <= ' ') c = read();
	      boolean neg = (c == '-');
	      if (neg) c = read();
	      do {
	        ret = ret * 10 + c - '0';
	      } while ((c = read()) >= '0' && c <= '9');
	      if (c == '.')
	        while ((c = read()) >= '0' && c <= '9') ret += (c - '0') / (div *= 10);
	      if (neg) return -ret;
	      return ret;
	    }

	    private void fillBuffer() throws IOException {
	      bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
	      if (bytesRead == -1) buffer[0] = -1;
	    }

	    private byte read() throws IOException {
	      if (bufferPointer == bytesRead) fillBuffer();
	      return buffer[bufferPointer++];
	    }

	    public void close() throws IOException {
	      if (din == null) return;
	      din.close();
	    }
	  }
}