题目描述
给定两个字符串a和b,我们定义a*b为他们的连接。
例如,如果a=”abc” 而b=”def”, 则a*b=”abcdef”。
如果我们将连接考虑成乘法,一个非负整数的乘方将用一种通常的方式定义:a0
=””(空字符串),a(n+1)=a∗(an)。
算法
暴力
woed为乘方运算中的基本字符串,在整个字符串的迭代中,word不断扩展,只要当能够满足匹配整个字符串时,即为所需的基本字符串,可得出答案即len(原串)/len(word)。
参考代码
C++ 代码
#include <iostream>
using namespace std;
int main()
{
string s;
while(cin>>s&&s[0]!='.')
{
bool ok=false;
string word;
for(int i=0;i<s.size();++i)
{
word+=s[i];
for(int j=0,k=0;k<s.size();++j,++k)
{
if(word[j%word.size()]!=s[k]) break;
if(k==s.size()-1) ok=true;
}
if(ok)
{
cout<<s.size()/word.size()<<endl;
break;
}
}
}
return 0;
}