算法竞赛_最长回文子串(含特殊符号输出)_C++
来源:互联网 发布:自动化控制软件 编辑:程序博客网 时间:2024/06/16 06:31
样例输入:
Confuciuss say: Madam, I'm Adam.
样例输出:
Madam,I'm Adam
说明:
枚举回文串的中间位置i, 然后不断往外扩展,直到有字符不同。
长度为奇数和偶数的处理不同。
使用了fgets()函数读取完整的一行。
#include <bits/stdc++.h>#define MAXN 5000+10using namespace std;char buf[MAXN], s[MAXN];int p[MAXN];int main(){ int n,m=0, max=0, x, y; int i,j; fgets(buf, sizeof(s), stdin); n=strlen(buf); for(i=0;i<n;i++){ if(isalpha(buf[i])){ p[m] = i; s[m++] = toupper(buf[i]); } } for(i=0;i<m;i++){ for(j=0;i-j >=0 && i+j<m; j++){ if(s[i-j] != s[i+j]) break; if(j*2+1 > max){ max = j*2+1; x=p[i-j]; y=p[i+j]; } } for(j=0;i-j >=0 && i+j+1<m; j++) { if(s[i-j] != s[i+j+1]) break; if(j*2+2 > max){ max = j*2+2; x=p[i-j]; y=p[i+j+1]; } } } for(i=x;i<=y;i++) printf("%c", buf[i]); printf("\n"); return 0;}
阅读全文
0 0
- 算法竞赛_最长回文子串(含特殊符号输出)_C++
- 算法竞赛_子序列之和_C++
- 算法竞赛入门经典 3.3 最长回文子串
- 算法竞赛_排列_C++
- 最长回文子串算法
- 【算法】最长回文子串
- 算法---最长回文子串
- 第五章_最长回文子串
- hihoCoder#1032_最长回文子串
- 原样输出最长回文子串
- 最长回文子串的输出
- 《剑指offer》输出最长回文子串
- hdu 3068 最长回文(最长回文子串 manacher算法)
- 【最长回文子串】HDU3068最长回文【Manacher算法】
- 输出最长回文子串(找到最长回文子串,并输出最长回文子串)
- 算法竞赛_分数化小数_C++
- 算法竞赛_开灯问题_C++
- 算法竞赛_蛇形填数_C++
- Js 数组深拷贝方法
- 微信小程序开发(二):获取微信小程序页面带参二维码全流程
- Java之注解
- JavaScript 面向对象(七)原型链深入
- Hibernate入门(10):缓存机制
- 算法竞赛_最长回文子串(含特殊符号输出)_C++
- apidoc生成resuful文档
- python设计模式之模板方法
- JavaWeb(EL表达式学习笔记)
- mysql
- Java开发数据库默认端口及网络常用端口
- 【算法设计作业】Week1
- Scrapy 的 Spider 的编写
- 浅谈vue 项目router (路由)+ views(界面)配置方案