C++:周期串

【题目描述】

如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。 例如,abcabcabcabc以3为周期(注意它也以6和12为周期)。

输入一个长度不超过80的串,输出它的最小周期。

----------------------------------------------------------------------

非常简单好玩的题,我快要爱上string了,比char *;char [];好用太多了

#include  <iostream>
using  namespace  std; 

int  main()
{  
	string s;
	
	int i = 0;
	
	getline(cin,s);
	
	char c = s[0]; //周期串的第一个字符保存在c中 
	
	int n = s.length();
	
	for(i = 1; i < n; i++) //注:从1开始找, 
	{ 
        //因为它是周期串,只要确定首尾相等即可 
		if(s[i]==c && s[i-1]==s[2*i-1]) break;
	}
	
	cout<<i<<endl;
		
    return  0;
}