leetcode No5 最长回文子串
给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为1000。
示例1:
* 输入:"babad"
* 输出:"bab"
* 注意:"aba"也是一个有效答案。
示例2:
* 输入:"cbbd"
* 输出:"bb"
public class LongestPalindrome {public static void main(String[] args) {System.out.println("cbbb: " + longestPalindrome("bba"));}public static String longestPalindrome(String s) {if (StringUtils.isBlank(s)) return "";String[] ss = s.split("");// 最长回文子串长度int start = 0;int end = 0;int llen = 0;//int[][] dp = new int[s.length()][s.length()];for (int x = 0; x < s.length(); x++) {dp[x][x] = 1;if (llen == 0) {start = end = x;}if (x < s.length() - 1) {if (Objects.equals(ss[x], ss[x + 1])) {dp[x][x + 1] = 1;start = x;end = x + 1;llen = 2;} else {dp[x][x + 1] = 0;}}}for (int i = 1; i < s.length(); i++) {for (int j = 1; i - j >= 0 && i + j < s.length(); j++) {if (dp[i][i + 1] == 1) {if (i + 1 + j < s.length() && StringUtils.equals(ss[i - j], ss[i + 1 + j])) {dp[i - j][i + 1 + j] = 1;if (llen < end - start + 1 + 2 * j) {start = i - j;end = i + 1 + j;}}}if (StringUtils.equals(ss[i - j], ss[i + j])) {dp[i - j][i + j] = 1;if (llen < end - start + 1 + 2 * j) {start = i - j;end = i + j;}}}}System.out.println("start: " + start);System.out.println("end : " + end);return s.substring(start, end + 1);}
}
leetcode No5 最长回文子串相关推荐
- [动态规划|字符串] leetcode 5 最长回文子串
[动态规划|字符串] leetcode 5 最长回文子串 1.题目 题目链接 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例1: 输入: "b ...
- LeetCode 5. 最长回文子串(动态规划)
文章目录 1. 题目 2. 解题 2.1 自己写的DP 2.2 优化后的DP 2.3 中心扩展法 1. 题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. ...
- 20200118:(leetcode)最长回文子串(中心扩展算法详解及思考)
最长回文子串(中心扩展算法详解及思考) 题目 中心扩展算法详解 代码实现 题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: " ...
- 20200117:(leetcode)最长回文子串(暴力法)
最长回文子串 题目 基本思路 代码实现 题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: ...
- leetcode 5. 最长回文子串 暴力法、中心扩展算法、动态规划,马拉车算法(Manacher Algorithm)
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000.示例 1: 输入: "babad" 输出: "bab" 注意: &quo ...
- leetcode - 5. 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 解题思路: 对于一个字符串,回文子串存在两种情况,第一种情况是???a???的回文子串,第二种情况是???aa ...
- leetcode题解5-最长回文子串
问题描述 给你一个字符串 s,找到 s 中最长的回文子串. 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同 ...
- LeetCode 516 最长回文子串
思路: 动态规划 dp数组:dp[i][j]表示s[i:j]最长回文子串长度 出口: ●i j相同, dp[i][j] 都为1 ●j=i+1,如果 s[j]=s[i] dp[i][j]=2, ...
- LeetCode 05最长回文子串
题目描述 描述: 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" ...
- [LeetCode][M0005]最长回文子串(Java)(马拉车(Manacher)算法)
题目描述: 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注 ...
最新文章
- linux hdparm 测试磁盘io,hdparm测试硬盘性能
- prometheus实战:
- 数据结构——二叉树的最长路径问题
- linux mysql误删,linux下MySQL安装与删除 (Ubuntu)
- Python稳基修炼之计算机等级考试易错细节题3(含答案)
- 创业阶段如何找客户_刚成立公司,怎么样找客户?
- jquery 常用方法 集锦
- 取数工具服务器文件夹,财务软件取数工具
- 深入Marlin固件
- 访问本机php文件无法解析_浏览器访问.php文件不解析直接下载
- 亲密关系(二、月晕现象)
- 【论文精读】Single-Perspective Warps in Natural Image Stitching-自然图像拼接中的单透视扭曲
- 尼基塔·丹尼诺夫《梦想者》
- ZoneAlarm 不错的防火墙软件
- 两篇关于区块链的最新综述论文被 IEEE ACCESS 接收
- could not initialize proxy - the owning Session was closed解决
- Git用户手册--GitHub
- 蓝牙Mesh开发五 Ble Mesh友谊FriendShip之TLSR8258低功耗节点
- Redis-狂神笔记-菜鸟风闲整理
- java随机生成姓名、电话、邮箱、时间
热门文章
- 10月最新720全景云系统,可生成小程序+带PC端+安装教程
- 2021年西式面点师(中级)考试题库及西式面点师(中级)考试试题
- rockchip eDP 配置
- 鸿蒙申请银行卡格式错误,办建设银行卡问题
- 【前端库】moment.js 时间库
- python excel 微信_Python读写Excel文件第三方库汇总,你想要的都在这儿!,微信文件第三方打开...
- 【原创纯手打】VUE项目写小米商城官网(附源码)
- 基于SPSS的医疗医保费用数据分析预测(C#)
- Unity实战篇:实现LOL英雄的移动方式。
- python 常用股票走势图绘制