#include <stdio.h>
int countRepeats(char *cptr) {
char prior = *cptr;
int clen = 0;
int result = 0;
while(*cptr) {
cptr++;
if (*cptr == prior) {
result += !clen;
clen++;
} else {
prior = *cptr;
clen = 0;
}
}
return result;
}
void test(int testId, char *text, int expected) {
int actual = countRepeats(text);
if (actual == expected) {
printf("Test %d OK\n", testId
); } else {
printf("Test %d failed, expected: %d, actual: %d\n", testId
, expected
, actual
); }
}
int main(void) {
test(1, "Too jeesttt ttest...", 5);
test(2, "", 0);
test(3, "A", 0);
test(4, "AA", 1);
test(5, "AAA", 1);
test(6, "AA A", 1);
test(7, "AA AA", 2);
test(8, " AA", 1);
test(9, "AA ", 1);
test(10, " AA ", 1);
test(11, " A A ", 0);
test(12, "DDBCDCCCCBB", 3);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgY291bnRSZXBlYXRzKGNoYXIgKmNwdHIpIHsKICBjaGFyIHByaW9yID0gKmNwdHI7CiAgaW50IGNsZW4gPSAwOwogIGludCByZXN1bHQgPSAwOwogIAogIHdoaWxlKCpjcHRyKSB7CiAgICBjcHRyKys7CiAgICBpZiAoKmNwdHIgPT0gcHJpb3IpCXsKICAgIAlyZXN1bHQgKz0gIWNsZW47CiAgICAJY2xlbisrOwogICAgfSBlbHNlIHsKICAgIAlwcmlvciA9ICpjcHRyOwogICAgCWNsZW4gPSAwOwogICAgfQogIH0KICAKICByZXR1cm4gcmVzdWx0Owp9Cgp2b2lkIHRlc3QoaW50IHRlc3RJZCwgY2hhciAqdGV4dCwgaW50IGV4cGVjdGVkKSB7CglpbnQgYWN0dWFsID0gY291bnRSZXBlYXRzKHRleHQpOwoJaWYgKGFjdHVhbCA9PSBleHBlY3RlZCkgewoJCXByaW50ZigiVGVzdCAlZCBPS1xuIiwgdGVzdElkKTsKCX0gZWxzZSB7CgkJcHJpbnRmKCJUZXN0ICVkIGZhaWxlZCwgZXhwZWN0ZWQ6ICVkLCBhY3R1YWw6ICVkXG4iLCB0ZXN0SWQsIGV4cGVjdGVkLCBhY3R1YWwpOwoJfQp9CgppbnQgbWFpbih2b2lkKSB7CgkKCXRlc3QoMSwgIlRvbyBqZWVzdHR0IHR0ZXN0Li4uIiwgNSk7Cgl0ZXN0KDIsICIiLCAwKTsKCXRlc3QoMywgIkEiLCAwKTsKCXRlc3QoNCwgIkFBIiwgMSk7Cgl0ZXN0KDUsICJBQUEiLCAxKTsKCXRlc3QoNiwgIkFBIEEiLCAxKTsKCXRlc3QoNywgIkFBIEFBIiwgMik7Cgl0ZXN0KDgsICIgQUEiLCAxKTsKCXRlc3QoOSwgIkFBICIsIDEpOwoJdGVzdCgxMCwgIiBBQSAiLCAxKTsKCXRlc3QoMTEsICIgQSBBICIsIDApOwoJdGVzdCgxMiwgIkREQkNEQ0NDQ0JCIiwgMyk7CgkKCXJldHVybiAwOwp9Cg==