最長對稱子串
阿新 • • 發佈:2022-04-22
題目詳情 - 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; return0; }
#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; }