1. 程式人生 > 其它 >最長對稱子串

最長對稱子串

題目詳情 - L2-008 最長對稱子串 (25 分) (pintia.cn)

STL:21分,另外的4分超時..

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    string str;
    getline(cin,str);
    int maxn=-1;
    for(int i=0;i<str.size();i++)
    {
        string ch;
        for(int j=i;j<str.size();j++)
        {
            ch
+=str[j]; string c; c=ch; reverse(ch.begin(),ch.end()); if(ch==c) { int len=ch.size(); maxn=max(maxn,len); } reverse(ch.begin(),ch.end()); } } cout<<maxn; return
0; }
#include<iostream>
using namespace std;
int main(){
    string str;
    getline(cin,str);
    int maxn=-1;
    for(int i=0;i<str.size();i++)
    {
        int l=i,r=i+1,sum=0;
        while(str[l]==str[r]&&l>=0&&r<str.size())
        {
            l--;
            r
++; sum+=2; } maxn=max(maxn,sum); } for(int i=0;i<str.size();i++) { int l=i-1,r=i+1; int sum=1; while(str[l]==str[r]&&l>=0&&r<str.size()) { l--; r++; sum+=2; } maxn=max(maxn,sum); } cout<<maxn; return 0; }