解题思路:
注意事项:
参考代码:
#include<iostream> #include<string> #include<set> using namespace std; string s1; int ish(int n) { set<string> s; for(int i=0;i<n;i++) { s.insert(s1.substr(i,1)); } if(n>1) { for(int i=2;i<n;i+=2) { for(int j=0;j+i<n;j++) { int k=i+j; for(int h=j;h<i/2+j;h++) { if(s1[h]==s1[k--]) { if(h+1 == k) { s.insert(s1.substr(j,i+1)); } continue; } else { break; } } } } } // for(set<string>::iterator it=s.begin();it!=s.end();it++) // { // cout<<*it<<endl; // } return s.size(); } int noh(int x) { set<string> s; if(s1.size()-x == 1) { return 0; } for(int i=2;i<=s1.size()-x;i++) { for(int j=x;j<=s1.size()-i;j++) { int k=j+i-1; for(int h=j;h<s1.size();h++) { if(s1[h]==s1[k--]) { if(h+1 == k) { break; } else if(h == k) { s.insert(s1.substr(j,i)); break; } } else { s.insert(s1.substr(j,i)); break; } } } } // for(set<string>::iterator it=s.begin();it!=s.end();it++) // { // cout<<*it<<endl; // } return s.size(); } int main() { int n; int sum=-1; cin>>n>>s1; for(int i=1;i<n;i++) { int s=ish(i)*noh(i); if(s>sum) { sum=s; } } cout<<sum<<endl; return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:611 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:665 |
蛇行矩阵 (C语言代码)浏览:742 |
【排队买票】 (C语言代码)浏览:899 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1144 |
WU-输入输出格式练习 (C++代码)浏览:1076 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:780 |
妹子杀手的故事 (C语言代码)浏览:1046 |
班级人数 (C语言代码)浏览:920 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:759 |