(1)回文字符串():
输入字符串,求出其中最长的回文字符串(连续的)
样例输入:abccbahjk
样例输出:abccba
从回文字符串的中间位置枚举:
代码如下:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string s;
char st[5010];
while(cin.getline(st,5010))
{
int max=0,flag=0,i,j;
s=st;
reverse(s.begin(),s.end());
int m=s.size();
for(i=0;i<m;i++)//枚举回文串的”中间“位置,i即为中间位置
{
for(j=0;i-j>=0&&i+j<m;j++)//对奇数的处理
{
if(s[i-j]!=s[i+j]) break;
if(j*2+1>max)
{
max=j*2+1;
flag=i-j;
}
}
for(j=0;i-j>=0&&