func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int max(long long int a, long long int b) {     if (a > b) {       return a;     }     return b;   }   long long int gcd(long long int a, long long int b) {     if (a == 0) {       return b;     }     return gcd(b % a, a);   }   long long int min(long long int a, long long int b) {     if (a < b) {       return a;     }     return b;   }   long long int power(long long int x, long long int n) {     long long int res = 1;     while (n > 0) {       if (n % 2 == 1) {         res = (res * x);       }       x = (x * x);       n = n / 2;     }     return res;   }   long long int factorialNumInverse[1000001];   long long int naturalNumInverse[1000001];   long long int fact[1000001];   void InverseofNumber(long long int n, long long int p) {     naturalNumInverse[0] = naturalNumInverse[1] = 1;     for (long long int i = 2; i <= n; i++)       naturalNumInverse[i] = naturalNumInverse[p % i] * (p - p / i) % p;   }   void InverseofFactorial(long long int n, long long int p) {     factorialNumInverse[0] = factorialNumInverse[1] = 1;     for (long long int i = 2; i <= n; i++)       factorialNumInverse[i] =           (naturalNumInverse[i] * factorialNumInverse[i - 1]) % p;   }   void factorial(long long int n, long long int p) {     fact[0] = 1;     for (long long int i = 1; i <= n; i++) {       fact[i] = (fact[i - 1] * i) % p;     }   }   long long int nCrModp(long long int n, long long int r, long long int p) {     long long int ans =         ((fact[n] * factorialNumInverse[r]) % p * factorialNumInverse[n - r]) % p;     return ans;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     long long int tc;     cin >> tc;     factorial(200005, 1000000007);     InverseofNumber(200005, 1000000007);     InverseofFactorial(200005, 1000000007);     while (tc--) {       long long int n;       cin >> n;       string s;       cin >> s;       long long int ans = 0;       long long int i = 1;       long long int len = 1;       while (i < n) {         if (s[i] == s[0]) {           len++;         }         i++;       }       if (len == n) {         cout << ceil((long double)n / (long double)3) <<   n ;         continue;       }       len = 0;       i = 0;       int j = s.length() - 1;       while (j >= 0 && s[j] == s[0]) {         len++;         j--;       }       while (i <= j && s[i] == s[0]) {         len++;         i++;       }       ans += (len) / 3;       len = 1;       i++;       while (i <= j) {         if (s[i] == s[i - 1]) {           len++;         } else {           ans += (len) / 3;           len = 1;         }         i++;       }       ans += (len) / 3;       cout << ans <<   n ;     }     return 0;   }   