Copy and push back: what wrong in this approach?

what is the test case it will fail?

#include <bits/stdc++.h>
#define ll long long int
using namespace std;
void solve(){
    ll n,i=0,j=1,k,b,c;
    cin>>n;
    string s="",a;
    cin>>a;
    while(i<n){
        if(j%2){
            s+=a[i];
        }   
        else{
            s+=s;
        }
        j++;
        i=s.size();
    }
    if(s==a){cout<<"YES\n";}
    else{cout<<"NO\n";}
}

int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll t;
cin>>t;
while(t--){solve();}
return 0;}

@shivammmm - you can find the failed test case by clicking on ‘debug my code’