Longest Palindromic Substring
2015-09-23 17:54
253 查看
题意:求一个字符串s的最长回文子串。
思路:dp[i][j]表示s[i,j]是否为回文字符子串(true or false)
则有状态转移方程:dp[i][j]=true,if dp[i+1][j-1]==true&&s[i+1]==s[j-1]
class Solution {
public:
string longestPalindrome(string s) {
int n=s.length();
if(n==1)
return s;
int i,j;
int maxlen,pos;
bool dp[1000][1000];
for(i=0;i<n;i++)
for(j=i;j<n;j++)
if(i==j)
dp[i][j]=true;
else
dp[i][j]=false;
for(i=2;i<=n;i++)//控制步长
for(j=0;j<=n-i;j++)
{
if(i==2&&s[j]==s[j+1]||dp[j+1][j+i-2]&&s[j]==s[j+i-1])
{
dp[j][j+i-1]=true;
maxlen=i;
pos=j;
}
}
string ans="";
for(i=pos;i<pos+maxlen;i++)
ans+=s[i];
return ans;
}
};
相关文章推荐
- 在项目中清理CVS信息
- django-crontab实现Django定时任务
- 水印性能评估
- 按home键 再次进入应用无法回到退出是的界面
- AIDL Service Android进程间通信机制
- 缓存限定登录次数
- 第四周【项目3.1-建设“单链表”算法库(多文件)】
- android应用程序如何调用支付宝接口
- Jenkins+Maven+SVN快速搭建持续集成环境(转)
- Linux下各类压缩文件命令小结
- 读汤姆大叔《深入理解javascript系列》笔记一编写高质量代码
- Jmeter拓展插件(jmeter-plugins)
- String面试题
- yii memcache 在 aliyun 开放缓存服务OCS运行方法
- uboot串口与标准输入输出代码详解
- 开通新博客啦
- sql server 分页查询
- HDU 4292--Food【最大流 && 拆点】
- 仿QQ发表动态,获取系统相册,选择多张图片上传
- 从《编程之美》买票找零问题说起,娓娓道来卡特兰数——兼爬坑指南