Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux编程 > » 正文

经典算法题--求对策字符串的最大长度(第二版)

来源: 未知 分享至:

经典算法题--求对策字符串的最大长度(第二版)

 方法一:思路很中规中矩,遍历这个字符串,若有发现相邻的两个字符相等,就循环判断与这两个字符相邻的两个字符是否相等,
         直到不等,记下字符符合条件的字符个数。最大的个数即为所求。(此方法适合如google这样的字符串)
 方法二:思路和方法一时一样的,适合ggoggle这样的字符串。
 方法三:满足题意,适合任何类型的字符串。就是时间复杂度为O(n^2)。

方法一
int counterplan1(const string str)
{
int strlen=str.length();
int maxlen=0;
for(int i=0;i<strlen-1;i++)
{
if(str[i]==str[i+1])
{
int start=i-1;
int end=i+2;
while(start>0 && end<strlen)
{
if(str[start]==str[end])
{
--start;++end;
}
else
{
break;
}
}
if(maxlen<end-start-1)
{
maxlen
=end-start-1;
}
}
}
return maxlen;
}
方法二
int counterplan2(const string str)
{
int strlen=str.length();
int maxlen=0;
for(int i=1;i<strlen-1;i++)
{
if(str[i-1]==str[i+1])
{
int start=i-1;
int end=i+2;
while(start>0 && end<strlen)
{
if(str[start]==str[end])
{
--start;++end;
}
else
{
break;
}
}
if(maxlen<end-start)
{
maxlen
=end-start;
}
}

}
return maxlen ;
}
方法三
int counterplan3(const string str)
{

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史