PAT1040 Longest Symmetric String

求最长回文子串

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

int main()
{
    string a;
    getline(cin,a);
    int max = 0;
    int length = a.size();
    for(int i = 0; i < length; i++)
    {
        for(int j = 0; i - j >= 0 && i + j < length; j++)
        {
            if(a[i-j] != a[i+j])
            {
                break;
            }
            if(max < 2*j + 1)
            {
                max = 2*j + 1;
            }
        }

        for(int j = 0; i - j >= 0 && i+j+1 < length; j++)
        {
            if(a[i-j] != a[i+j+1])
            {
                break;
            }
            if(max < 2*j + 2)
            {
                max = 2*j+2;
            }
        }
    }
    cout<<max<<endl;
    return 0;
}
 

猜你喜欢

转载自ppcool.iteye.com/blog/1734284