演算法篇-字串-週期串

不被看好的青春叫成長發表於2015-04-01

題目:如果一個字串可以由某個長度為k的字串重複多次得到,我們說該串以k為週期。例如abcabcabcabc以3為週期(注意,它也以6和12為週期)。輸入一個長度不超過80的串,輸出它的最小週期。
樣例輸入:HOHOHO
樣例輸出:2

 

程式碼如下:

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    char word[100];
    cin>>word;
    int len=strlen(word);
    for (int i=1; i<=len; i++)
    {
        if (len%i==0)
        {
            int ok=1;
            for (int j=i; j<len; j++)
            {
                if (word[j]!=word[j%i])
                {
                    ok=0;
                    break;
                }
            }

            if (ok)
            {
                cout<<i<<endl;
                break;

            }
        }
    }
    return 0;
}

執行結果:

相關文章