关于c++字符串的一道练习题

给定字符串a与b,我们定义a*b为a与b的连结.比如:若a="abc",b="def",则有a*b="abcdef";同样,我们定义a^0=""(空串),以及(对于非负整... 给定字符串a与b,我们定义a*b为a与b的连结.比如: 若a = "abc",b = "def",则有a*b = "abcdef";同样,我们定义 a^0 = "" (空串),以及(对于非负整数n)a^(n+1) = a*(a^n).设计C++程序,要求完成如下功能:
输入:每行为一个可显示的字符串s;“.”为终止行内容。
输出:对每个字符串s,输出最大的n,使得对于某个字符串a有s = a^n.
Sample Input
abcd
aaaa
ababab

Sample Output
1
4
3
bdScan首先谢谢你的回答,不过程序报错,没查出是什么问题,您再帮忙看看.
展开
 我来答
bdScan
2008-08-29 · TA获得超过767个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:0
展开全部
报错可能是因为main没加int返回类型的原因,已经加上了,仍然报错的话请检查编译器.我刚在vc6.0/vc2005/devc++三个编译器上测试了代码

可以验证
aabaaa 是3阶
aababcabcabc 是3阶

#include <iostream>
#include <string>
using namespace std;
int main()
{
string in;
cin >>in;
int max=1;
while(in.size())
{
int len=0;
while(++len<in.size())
{
int st=0,tmax=1;
while(st+2*len<=in.size()
&& in.substr(st,len)==in.substr(st+len,len))
st+=len,tmax++;
if(tmax>max)
max=tmax;
}
in.erase(0,1);
}
cout <<"最高阶:"<<max;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式