對給定的字符串,本題要求你輸出最長對稱子串的長度。例如,給定Is PAT&TAP symmetric?,最長對稱子串為s PAT&TAP s,于是你應該輸出11。
輸入在一行中給出長度不超過1000的非空字符串。
在一行中輸出最長對稱子串的長度。
Is PAT&TAP symmetric?輸出樣例:
11
#include <iostream>#include <cstdio>#include <cmath>#include <queue>#include <stack>#include <map>#include <algorithm>#include <vector>#include <string>#include <cstring>#include <sstream>using namespace std;char a[1005];int len;int main(){ gets(a); len=strlen(a); int ans=1; for(int i=1;i<len-1;i++) { int p=i-1; int q=i+1; int tmp=1; while(p>=0&&q<len) { if(a[p]==a[q]) { p--; q++; tmp+=2; } else { break; } } if(tmp>ans) { ans=tmp; } } for(int i=0;i<len-1;i++) { int p=i; int q=i+1; int tmp=0; while(p>=0&&q<len) { if(a[p]==a[q]) { p--; q++; tmp+=2; } else { break; } } if(tmp>ans) { ans=tmp; } } PRintf("%d/n",ans); return 0;}
新聞熱點
疑難解答