5-12 最长对称子串 (25分)
来源:互联网 发布:海岛奇兵20级野人数据 编辑:程序博客网 时间:2024/04/29 09:34
5-12 最长对称子串 (25分)
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。
输入格式:
输入在一行中给出长度不超过1000的非空字符串。
输出格式:
在一行中输出最长对称子串的长度。
输入样例:
Is PAT&TAP symmetric?
输出样例:
11
分析:
考虑两种情况,第一种类似abccba
第二种类似abcba
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;int maxlen1[1003];//maxlenl[t]用于存储以str[t]为中心点的对称字符串的长度int maxlen2[1003];char str1[1003];int main(){ int length1=0,index,sum; int max1,max2; char c; while(scanf("%c",&c)&&c!='\n') { str1[length1++]=c; } for (int i=0;i<length1;i++) { index=i+1; sum=0; for (int j=i;j>=0;j-- ) { if (str1[j]==str1[index++])// { sum++; } else { break; } } maxlen1[i]=sum; max1=*max_element(maxlen1,maxlen1+length1); } for (int i=0;i<length1;i++) { index=i; sum=0; for (int j=i;j>=0;j-- ) { if (str1[j]==str1[index++]) { sum++; } else { break; } } maxlen2[i]=sum; max2=*max_element(maxlen2,maxlen2+length1); } if(max1>=max2) cout<<max1*2; else cout<<max2*2-1; return 0;}
0 0
- 5-12 最长对称子串 (25分) 思维
- 5-12 最长对称子串 (25分)
- 5-12 最长对称子串 (25分)
- 最长对称子串 (25分)
- 最长对称子串
- 最长对称子串
- 最长对称子串
- 最长对称子串
- 最长对称子串
- 最长对称子串
- 最长对称子串
- 最长对称子串
- 最长对称子串
- 最长对称子串
- 最长对称子串
- 5-7 最长对称子串 (25分) 对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。
- 最长对称字符子串
- pat 最长对称子串
- android源码解析(4)--如何结束运行中的分线程
- 3.13 判读是否是对称素数
- CentOS安装mysql
- iOS开发
- 网页上传图片
- 5-12 最长对称子串 (25分)
- Lotto
- Our story begins
- SSH框架与SSM框架学习之旅之流程总结
- 3.14 01串排序
- 第一道题目
- android View属性查阅表
- 百奇与编程
- Android中收集的一些小技巧