您的位置:首页 > 其它

输入一个字符串,输出该字符串中对称的子字符串的最大长度。

2013-07-18 20:10 357 查看
题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。
比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。

目前没想到更好的方法,时间复杂度是O(n^2);int max_len(char* str)
{
char *p = str;
int len = 1 ;
while(*p != '\0')
{
char *first,*last;
first = p - 1;
last = p + 1;
while( first >= str && *last != '\0' && *first == *last)
{
first--;
last++;
}
if( (last - first - 1 ) > len)
len = last - first - 1;
first = p;
last = p + 1;
while( first >= str && *last != '\0' && *first == *last)
{
first--;
last++;
}
if( (last - first - 1 ) > len)
len = last - first - 1;
p++;
}

return len;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐