#include <iostream>
#include <string>
using namespace std;
int main() {
int t;
cin >> t; // Read the number of test cases
while (t--) {
int n;
cin >> n; // Read the length of the string
string s;
cin >> s; // Read the binary string
int count_0 = 0, count_1 = 0;
int transitions = 0;
// Count the number of '0's and '1's and count transitions
for (int i = 0; i < n; i++) {
if (s[i] == '0') {
count_0++;
// Check for transition from '1' to '0'
if (i > 0 && s[i - 1] == '1') {
transitions++;
}
} else {
count_1++;
// Check for transition from '0' to '1'
if (i > 0 && s[i - 1] == '0') {
transitions++;
}
}
}
// If there are no '0's or no '1's, no moves are needed
if (count_0 == 0 || count_1 == 0) {
cout << 0 << endl;
} else {
// The number of moves is the number of transitions + 1
cout << transitions + 1 << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgdDsKICAgIGNpbiA+PiB0OyAvLyBSZWFkIHRoZSBudW1iZXIgb2YgdGVzdCBjYXNlcwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIGludCBuOwogICAgICAgIGNpbiA+PiBuOyAvLyBSZWFkIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZwogICAgICAgIHN0cmluZyBzOwogICAgICAgIGNpbiA+PiBzOyAvLyBSZWFkIHRoZSBiaW5hcnkgc3RyaW5nCgogICAgICAgIGludCBjb3VudF8wID0gMCwgY291bnRfMSA9IDA7CiAgICAgICAgaW50IHRyYW5zaXRpb25zID0gMDsKCiAgICAgICAgLy8gQ291bnQgdGhlIG51bWJlciBvZiAnMCdzIGFuZCAnMSdzIGFuZCBjb3VudCB0cmFuc2l0aW9ucwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGlmIChzW2ldID09ICcwJykgewogICAgICAgICAgICAgICAgY291bnRfMCsrOwogICAgICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIHRyYW5zaXRpb24gZnJvbSAnMScgdG8gJzAnCiAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYgc1tpIC0gMV0gPT0gJzEnKSB7CiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbnMrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGNvdW50XzErKzsKICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciB0cmFuc2l0aW9uIGZyb20gJzAnIHRvICcxJwogICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIHNbaSAtIDFdID09ICcwJykgewogICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyAnMCdzIG9yIG5vICcxJ3MsIG5vIG1vdmVzIGFyZSBuZWVkZWQKICAgICAgICBpZiAoY291bnRfMCA9PSAwIHx8IGNvdW50XzEgPT0gMCkgewogICAgICAgICAgICBjb3V0IDw8IDAgPDwgZW5kbDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyBUaGUgbnVtYmVyIG9mIG1vdmVzIGlzIHRoZSBudW1iZXIgb2YgdHJhbnNpdGlvbnMgKyAxCiAgICAgICAgICAgIGNvdXQgPDwgdHJhbnNpdGlvbnMgKyAxIDw8IGVuZGw7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0=