可以參考 nkavengertree 大大的解題報告

 

#include <iostream>
#include <cstring>

using namespace std;

char text[1000001];

int main()
{
    int len, last_zero;
    while(cin >> text && text[0] != '.'){
        len = strlen(text);

        last_zero = 1;
        for(int i = 1, s = 0; i<len; i++)
            if(text[i] == text[s])
                s++;
            else{
                if(s)
                    i--;

                s = 0;
                last_zero = i+1;

            }

        if(last_zero > (len>>1) || len%last_zero)
            cout << 1 << endl;
        else
            cout << len / last_zero << endl;

    }
    return 0;
}
 

arrow
arrow
    全站熱搜

    大神(偽) 發表在 痞客邦 留言(0) 人氣()