5 solutions
-
6
枚举奇偶,向两边扩张 #include<bits/stdc++.h> using namespace std; int main() { string s; getline(cin,s); int res=0; for(int i=0;i<s.size();i++) { int l=i-1,r=i+1; //回文串长度是奇数的情况 while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; res=max(res,r-l-1); l=i,r=i+1; //回文串长度是偶数的情况 while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; res=max(res,r-l-1); } cout<<res; return 0; } -
1
#include<bits/stdc++.h> using namespace std; int main() { string s; cin>>s; int res=0; for(int i=0;i<s.size();i++) { for(int j=i;j<s.size();j++) { string s1=s.substr(i,j-i+1); string s2=s1; reverse(s2.begin(),s2.end()); if(s1==s2) { res=max(res,(int)s2.size()); } } } cout<<res; return 0; } **** -
1
#include<bits/stdc++.h> using namespace std; int main() { string s; getline(cin,s); int res=0; for(int i=0;i<s.size();i++) { int l=i-1,r=i+1; while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; res=max(res,r-l-1); l=i,r=i+1; while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; res=max(res,r-l-1); } cout<<res; return 0; } -
0
#include<bits/stdc++.h> using namespace std; int main() { string s; getline(cin,s); int res=0; for(int i=0;i<s.size();i++) { int l=i-1,r=i+1; while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; res=max(res,r-l-1); l=i,r=i+1; while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; res=max(res,r-l-1); } cout<<res; return 0; } -
0
枚举奇偶,向两边扩张 #include<bits/stdc++.h> using namespace std; int main() { string s; getline(cin,s); int res=0; for(int i=0;i<s.size();i++) { int l=i-1,r=i+1; //回文串长度是奇数的情况 while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; res=max(res,r-l-1); l=i,r=i+1; //回文串长度是偶数的情况 while(l>=0&&r<s.size()&&s[l]==s[r]) l--,r++; res=max(res,r-l-1); } cout<<res; return 0; }
- 1
Information
- ID
- 79
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 110
- Accepted
- 36
- Uploaded By