AcWing 777. 字符串乘方
原题链接
简单
作者:
面向AI学算法
,
2025-04-05 00:14:57
· 上海
,
所有人可见
,
阅读 2
法1:对整个字符串进行判断
#include<iostream>
using namespace std;
int main()
{
string s;
while(cin >> s, s != ".")
{
bool flag;
int len = s.length();
for(int i = 1; i <= len; i ++ )
if(len % i == 0)
{
flag = true;
for(int j = 0; j < len; j ++ )
if(s[j] != s[j % i])
{
flag = false;
break;
}
if(flag)
{
cout << len / i << endl;
break;
}
}
}
return 0;
}
法2:用substr提取子串,拼接成新字符串进行比较
#include<iostream>
using namespace std;
int main()
{
string s;
while(cin >> s, s != ".")
{
int len = s.length();
for(int i = 1; i <= len; i ++ )
if(len % i == 0)
{
int num = len / i;
string t = s.substr(0, i);
string t2;
while(t2.length() < len)
t2 += t;
if(t2 == s)
{
cout << num << endl;
break;
}
}
}
return 0;
}