动态规划 最长回文子串 leetcode5
public static String longestPalindrome(String s) {
if(null==s||s.length()==0) return s;
int n=s.length();
char[]c=s.toCharArray();
int[][]dp=new int[n][n];
int max=0,imax=0,jmax=0; for(int i=0;i<n;i++){
dp[i][i]=1;
if(i+1<n&&c[i]==c[i+1]){
dp[i][i+1]=2;
if(dp[i][i+1]>max) {
max=dp[i][i+1];
imax=i;
jmax=i+1;
}
}
} for(int i=0;i<n;i++){
for(int j=1;i+j<n&&i-j>=0;j++){
if(i+1<n&&c[i+j]==c[i-j]){ dp[i-j][i+j]=dp[i-j+1][i+j-1]+2;
if(dp[i-j][i+j]>max) {
max=dp[i-j][i+j];
imax=i-j;
jmax=i+j;
}
}else break;
}
} for(int i=0;i<n;i++){
for(int j=1;i+j<n&&i-j>=0;j++){
if(i+1<n&&i-j>=0&&i+1+j<n&&dp[i][i+1]!=0&&c[i-j]==c[i+1+j]){ dp[i-j][i+1+j]=dp[i-j+1][i+j]+2;
if(dp[i-j][i+j+1]>max) {
max=dp[i-j][i+j+1];
imax=i-j;
jmax=i+j+1;
}
}else break;
}
} return s.substring(imax,jmax+1);
}
动态规划 最长回文子串 leetcode5的更多相关文章
- 动态规划—最长回文子串LEETCODE第5题深度剖析
动态规划对于笔者来说有很重要的意义 一.题目如下: 对于此类题目,笔者常用的的办法是先做个暴力解题思路,然后再对暴力法进行优化. 二.暴力法 //字串遍历 public static String l ...
- leetcode-5 最长回文子串(动态规划)
题目要求: * 给定字符串,求解最长回文子串 * 字符串最长为1000 * 存在独一无二的最长回文字符串 求解思路: * 回文字符串的子串也是回文,比如P[i,j](表示以i开始以j结束的子串)是回文 ...
- LeetCode5 最长回文子串
最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" ...
- 5. Longest Palindromic Substring(最长回文子串 manacher 算法/ DP动态规划)
Given a string s, find the longest palindromic substring in s. You may assume that the maximum lengt ...
- 【LeetCode】最长回文子串【动态规划或中心扩展】
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad"输出: "bab"注意: " ...
- Leetcode(5)-最长回文子串(包含动态规划以及Manacher算法)
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &quo ...
- [LeetCode] 5. 最长回文子串 ☆☆☆(最长子串、动态规划)
最长回文子串 (动态规划法.中心扩展算法) https://leetcode-cn.com/problems/longest-palindromic-substring/solution/xiang- ...
- [译]最长回文子串(Longest Palindromic Substring) Part I
[译]最长回文子串(Longest Palindromic Substring) Part I 英文原文链接在(http://leetcode.com/2011/11/longest-palindro ...
- LeetCode:Longest Palindromic Substring 最长回文子串
题目链接 Given a string S, find the longest palindromic substring in S. You may assume that the maximum ...
随机推荐
- 【转】使用 Python Mock 类进行单元测试
出处:https://www.oschina.net/translate/unit-testing-with-the-python-mock-class?lang=chs&page=2#
- web安全之SQL注入--第一章 课程介绍
课程介绍1.什么是SQL注入?2.如何寻找SQL注入漏洞?3.如何进行sql注入攻击?4.如何预防sql注入5.课程总结
- Android SQLite基本用法
SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLit ...
- Solr6.5查询参数说明
q - 查询字符串,这个是必须的.如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,作用:在q查询符合结果中同时是 ...
- GitHub从无到有
一步一步教你如何在GitHub上上传自己的项目 2018年07月04日 09:23:40 夏雨薇安 阅读数:22764 首先你得注册一个自己的GitHub账号,注册网址:https://githu ...
- 【BZOJ4548】小奇的糖果 set(链表)+树状数组
[BZOJ4548]小奇的糖果 Description 有 N 个彩色糖果在平面上.小奇想在平面上取一条水平的线段,并拾起它上方或下方的所有糖果.求出最多能够拾起多少糖果,使得获得的糖果并不包含所有的 ...
- 九度OJ 1202:排序 (排序)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:19711 解决:6508 题目描述: 对输入的n个数进行排序并输出. 输入: 输入的第一行包括一个整数n(1<=n<=100). ...
- STL中vector怎么实现邻接表
最近,同期的一位大佬给我出了一道题目,改编自 洛谷 P2783 有机化学之神偶尔会做作弊 这道题好坑啊,普通链表过不了,只能用vector来存边.可能更快一些吧? 所以,我想记录并分享一下vector ...
- 虚拟机 minimal 安装增强包
在虚拟机下安装了一个centos的minimal镜像,发现增强包不能安装,鼠标不能在虚拟机和物理机间自由切换.不能共享粘贴板,非常是不爽,这里摸索出在centos minimal OS下安装增强包的 ...
- Django在不启动server的情况下调用方法
from django.conf import settingsfrom django import template settings.configure() a = template.Templa ...