【PAT甲级】1040 Longest Symmetric String (25 分)(cin.getline(s,1007))
题意:
输入一个包含空格的字符串,输出它的最长回文子串的长度。
AAAAAccepted code:
1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 char s[1007]; 5 int main(){ 6 ios::sync_with_stdio(false); 7 cin.tie(NULL); 8 cout.tie(NULL); 9 cin.getline(s+1,1005); 10 int ans=0; 11 int cnt=strlen(s+1); 12 if(cnt) 13 ans=1; 14 for(int i=1;i<=cnt;++i){ 15 int l=i-1,r=i+1; 16 while(1){ 17 if(l<1||r>cnt) 18 break; 19 if(s[l]==s[r]){ 20 ans=max(ans,r-l+1); 21 --l; 22 ++r; 23 } 24 else 25 break; 26 } 27 l=i,r=i+1; 28 while(1){ 29 if(l<1||r>cnt) 30 break; 31 if(s[l]==s[r]){ 32 ans=max(ans,r-l+1); 33 --l; 34 ++r; 35 } 36 else 37 break; 38 } 39 } 40 cout<<ans; 41 return 0; 42 }
保持热爱 不懈努力
不试试看怎么知道会失败呢(划掉)
世上无难事 只要肯放弃(划掉)