WHY AM I GETTING WA IN SWAPPALI...........GETTING 2 SUBTASKS CORRECT AND 2 WA

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;cin>>t;
    while(t--)
    {
        int n;cin>>n;
        string arr;cin>>arr;
        int visit[n];
        memset(visit,0,sizeof(visit));
        int i=0,j=n-1;
        int flag=0;
        int ans=0;
        for(;i<n/2;i++,j--)
        {
            if(arr[i]==arr[j])continue;
            else if(arr[i]==arr[j-1] && visit[j]==0 && visit[j-1]==0)
            {
                swap(arr[j],arr[j-1]);ans++;
                visit[j]=visit[j-1]=1;
            }
            else if(arr[i+1]==arr[j] && visit[i]==0 && visit[i+1]==0)
            {
                swap(arr[i],arr[i+1]);ans++;
                visit[i]=visit[i+1]=1;
            }
            else {flag=1;break;}
        }
        if(flag)cout<<"NO"<<endl;
        else {
            cout<<"YES"<<endl<<ans<<endl;
        }
    }
}