如题,查找字符串中最长的回文,并输出该回文的长度。
例如:
输入: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)方法第二个参数是字符串长度!!