OX_pattern
#include<stdio.h> #include<stdlib.h> #define SIZE 10000 static int data[SIZE]; int test_main(int data[SIZE]); static void build(){ for(int i=0;i<SIZE;i++) data[i]=(rand()%2)? 'o':'x'; } int main(){ for(int l=0;l<10;l++){ build(); printf("%d\n",test_main(data)); } } //int test(int data[SIZE]) //{ // int count=0; // for(int i=0;i<SIZE-2;i++) // { // int index=i; // if(data[i]=='o'&&data[i+1]=='o'&&data[i+2]!='o') // { // index=index+3; // while(data[index]=='x') // index++; // if(data[index]=='o'&&data[index+1]=='o'&&data[index+2]!='o') // { // index=index+3; // while(data[index]=='x') // index++; // if(data[index]=='o') // { // count++; // i=index; // } // } // } // } // //return count; //} int test_main(int data[SIZE]) { int count = 0; for(int i=0;i<SIZE-2;i++) { if(data[i]=='o'&&data[i+1]=='o'&&data[i+2]!='o') { i += 3; while(data[i] == 'x') i ++; if(data[i]=='o'&&data[i+1]=='o'&&data[i+2]=='x') { i += 3; while(data[i] == 'x') i ++; if(data[i]=='o') count++; } } } return count; }