Lang:GCC
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <string.h>char s[10 * 1024 * 1024];int judge(const char *s) {char last = *s++, in;int state = 0, count[3] = {1};while ((in = *s++)) {if (in == last) {++count[state];if (state > 0 && count[state] > count[state - 1]) {count[0] = count[state];state = 0;}} else if (in == last + 1) {if (state == 2) /*left shift array count*/count[0] = count[1], count[1] = count[2];else++state;count[state] = 1;} else {state = 0;count[state] = 1;}if (state == 2 && count[state] == count[state - 1])return 1;last = in;}return 0;}