leetcode-5Longest Palindromic Substring
2015-06-23 21:13
253 查看
区间dp
import java.util.* ; public class Solution{ public String longestPalindrome(String s){ int n = s.length() ; boolean[][] dp = new boolean ; for(int i = 0 ; i < n ; i++) Arrays.fill(dp[i], false) ; int start = 0 , mxlen = 1 ; for(int i = 0 ; i < n ; i++) dp[i][i] = true ; for(int i = 0 ; i+1 < n ; i++){ if(s.charAt(i) == s.charAt(i+1)){ start = i ; mxlen = 2 ; dp[i][i+1] = true ; } } for(int d = 2 ; d < n ; d++){ for(int i = 0 ; i + d < n ; i++){ int j = i + d ; if(s.charAt(i) == s.charAt(j)){ dp[i][j] = dp[i+1][j-1] ; if(dp[i][j] && (j-i+1) > mxlen){ mxlen = j-i+1 ; start = i ; } } } } return s.substring(start , start+mxlen) ; } public static void main(String[] args) { System.out.println(new Solution().longestPalindrome("abdcdcdd")) ; } }
相关文章推荐
- Hibernate进阶篇(一)——hibernate.cfg.xml常用配置属性
- http
- python多线程简单例子
- Linux gcc命令
- 无参构造
- 数值的整数次方
- (六十七)Xcode导入XMPPFramework框架
- Java 生成一个excel表 9*9
- List和Set区别深度解析
- (六十七)Xcode导入XMPPFramework框架
- C# 连接 Oracle 的几种方式
- 22Spring基于配置文件的方式配置AOP
- 如何退出App之前唤醒另一个App?
- 历史表创建
- Java多线程 多个生产者和多个消费者实现同步 jdk1.5
- 静态方法
- 一个整数二进制中1的个数
- hdu4283 you are the one 区间DP
- 继承
- 封装