南邮 OJ 1968 最长回文子串的长度
2015-08-07 10:33
323 查看
最长回文子串的长度
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte总提交 : 391 测试通过 : 84
比赛描述
输入一个字符串,求出其中最大回文子串的长度。子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同,如abba和yyxyy。在判断时,应该忽略所有标点符号和空格,且忽略大小写,但输出应保持原样(在回文串的首部和尾部不要输出多余字符)。
输入
输入字符串长度不超过5000,且占据单独的一行。
输出
输出最长回文串的长度,该回文串不包括所有标点符号和空格。
样例输入
Confuciuss say: Madam,I'm Adam.
样例输出
11
提示
undefined
题目来源
NUPT
tring> using namespace std; int main(){ int i,j,n,max; string s; getline(cin,s); n=(int)s.length(); for(i=0,j=0;i<n;i++){ if(s[i]>='a' && s[i]<='z'){ s[j++]=s[i]; }else if(s[i]>='A' && s[i]<='Z'){ s[j++]=s[i]-'A'+'a'; } } n=j; max=1; for(i=1;i<n;i++){ for(j=1; i-j>=0 && i+j<n && s[i+j]==s[i-j]; j++); j--; if(max<2*j+1){ max=2*j+1; } for(j=1; i-j>=0 && i-1+j<n && s[i-j]==s[i-1+j]; j++); j--; if(max<2*j){ max=2*j; } } cout<<max<<endl; }
相关文章推荐
- Android反射机制实现与原理
- mac 安装SourceInsight
- 【一起玩吧】隐私声明
- DataStage 的优化原则
- Servlet上传文件直接处理方式
- leetcode_Combination Sum
- 内存映像文件简介
- jquery中文API
- hdoj 5040 bfs
- POJ 1155 TELE(树形DP)
- Linux之文件操作(2)
- Language Guide (proto3)
- Item里的Button不可点击
- Functional MRI (second edition) -- 8. Signal, Noise, and Preprocessing of fMRI Data
- 通过服务器向指定客户端发送消息
- redis和memcached相关
- Spring3.1+Hibernate3+Struts2的最新整合所需要的jar包
- 关于ant的找不到符号异常
- H3C bridge端口脚本
- 笑傲测试!!!