题目大意:用递归算法计算一个字符串中最大的连续字符个数,比如aabbcc输出3,aabbcc输出2,abc输出1
思路:递归:当前和一个比较,相同就count+1,并更新max的值,不同就把count置1。调用本身:当前位置+1。
代码:
#include <iostream>
#include <string>
using namespace std;
int JJ(string str, int cur, int count, int maxlen)
{
if(cur==str.length())
{
return maxlen;
}
if(str[cur]==str[cur-1])
{
count++;
if(count>maxlen)
{
maxlen = count;
}
}else
{
count = 1;
}
return JJ(str,cur+1,count,maxlen);
}
int main()
{
string a;
cin>>a;
if(a.empty())
cout<<0<<endl;
if(a.length()==1)
cout<<1<<endl;
else
cout<<JJ(a,1,1,1)<<endl;
system("pause");
return 0;
}