软件小白第一次写题解,思路很好理解(头脑简单hh),没有大佬们的巧妙算法,时间:10ms
C++ 代码
#include <iostream>
#include <string>
using namespace std;
int suan(string a)
{
string s,sum;
int len=a.size();
int k;
for(int i=1;i<len+1;++i)
{
s=a.substr(0,i); //从第一位开始尝试,找到最小重复字符串
k=len/i; //计算试探字符串的幂数
for(int j=0;j<k;++j)sum+=s;
if(sum==a)return k;
sum.clear(); //注意:要每次清空乘方和字符串
}
return k;
}
int main()
{
string a;
cin>>a;
while(a!="."){
printf("%d\n",suan(a));
cin>>a;
}
return 0;
}
作者:会飞的橘猫
链接:https://www.acwing.com/activity/content/code/content/1288063/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。