您的位置:首页 > 其它

输出任意字符串中最长的回文长度

2017-09-26 09:21 267 查看
如题,查找字符串中最长的回文,并输出该回文的长度。

例如:

输入:12ABBA

输出:4

输入:51233214

输出:6

#include<string>
#include<iostream>
#include <algorithm>

using namespace std;

bool is_palindrome(string s) //判断字符串s是否是回文
{
//cout << s << endl;
return equal(s.begin(), s.begin() + s.length() / 2, s.rbegin());
}

int main()
{
string str;
while (cin>>str)
{
int length = str.length();
do
{
for (size_t i = 0; i < str.length() - length + 1; ++i)
{
if (is_palindrome(str.substr(i, length)))
{
cout << length << endl;
length = 0;//控制跳出while循环
break;
}
}
} while (length--);
}

return 0;
}


注意:string::substr(p,n)方法第二个参数是字符串长度!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  回文字符串
相关文章推荐