题目:
给你一个字符串,请你判断将此字符串转化成a^n形式的最大的n是多少。
例如:
- abcd=(abcd)^1,则n=1;
- aaaa=a^4,则n=4;
- ababab=(ab)^3,则n=3。
-
输入格式
输入共1行,包含一个长度不超过100的字符串,其中不存在空格等空白符
输出格式
输出共1行,表示最大的n
-
输入样例
-
ababab
输出样例
3
题意:
看有多少个重复字符串片段
思路:
这道题,可以建三个字符串,第一个用来输入,第二个和第三个用来截取第一个,首先截取第一个字母,然后利用循环在原字符串内比较,若不一样,则flag=0,退出循环,若一样,cot++(表示重复字符片段的个数),退出循环后,若flag=1则代表已经比较完成且完全一模一样,直接输出个数就行了,否则k++(截取的字符个数增加),再重复一次程序,若直到最后仍flag=0,直接输出1即可。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
int len=s.size();
string s1,s2;
int k=1,cot=0,i;
for(i=0;i<len;i++)
{
int flag=1,cot=0;
s1=s.substr(0,k);
for(int j=0;j<len;j+=k)
{
s2=s.substr(j,k);
if(s2!=s1)
{
flag=0;
break;
}
else
cot++;
}
if(flag)
{
cout<<cot;
break;
}
if(k<len)
k++;
}
if(i==len)
cout<<1;
}