WZOI-354找子串

题目描述:

给定两个字符串a和b,我们定义a*b表示字符串的连接。例如,如果a=”abc”,b=”def”,那么a*b=“abcdef”,如果这种连接是多重的,可以用幂的形式来定义:a^0=“” (空串),a^(n+1)=a*(a^n)。

输入格式:

只有一行表示一个字符串s,长度至少为1,不超过100

输出格式:

输出最大的n值,如s=a^n(a是某个字符串)

样例输入:

样例1:
abcd

样例2:
aaaa

样例3:
ababab

样例输出:

样例1:
1

样例2:
4

样例3:
3

提示:

本题要用到C++字符串的一些命令。

1)定义字符串类型

    string  s;      //长度无限长

2)读入一行字符串

    cin >> s;   //读到空格为止

    getline ( cin ,  s )   //以行为单位,读入整行内容给 s

3)求字符串的长度:

     s.length( )

4)查看字符串的某一位置的字符:

      s [ i ]

5)取字符串当中的某一段子串:

     s.substr( i , 3 )   //在s字符串从i位开始连续取长度为3的子串。

6)字符串的比较:

     两串字符串s1和s2,可以直接用>、<、==等关系运算符进行比较。

时间限制: 1000ms
空间限制: 256MB

代码如下:
 

#include
using namespace std;
int a[1000005],len;
char s[1000010];
void fun(){
    int i=0;
	int j=-1;
	a[0]=-1;
	while(i

你可能感兴趣的:(WZOI题目,c++,算法,字符串)