您的位置:首页 > 其它

求对称字符串的最大长度

2013-03-06 10:57 183 查看
//返回最长的对称字符串的长度,如google,对称字符串是goog,最大长度为4
int symStr(char* source)
{
if('\0' == *source)
return 0;
int maxLength = 1;
char* current = source;
while('\0' != *current)
{
int max1 = 0;
int symIndex = 0; // 对称游标
//(1) googllgox,对称字符个数为偶数,比如这样返回6,此时current + i + 1
while('\0' != *(current - symIndex - 1) && '\0' != *(current + symIndex) &&
*(current - symIndex - 1) == *(current + symIndex))
{
max1 += 2;
symIndex++;
}
maxLength = max(max1, maxLength);
max1 = 1;
symIndex = 1;
//(2)baidudiac,对称字符个数为奇数,比如这样返回7
while('\0' != *(current - symIndex) && '\0' != *(current + symIndex) &&
*(current - symIndex) == *(current + symIndex))
{
max1 += 2;
symIndex++;
}
maxLength = max(max1, maxLength);
++current;
}
return maxLength;
}
代码还有很多改进的地方,留给读者自由发挥
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: