5. Longest Palindromic Substring最大回文子串
int sta = 0;
int max = 1;
public String longestPalindrome(String s) {
/*
判断回文有两种:
1.最大回文子序列求长度:
用动态规划,dp[sta][end] 代表开头为sta、结尾为end的部分最大回文子序列的长度是多少
dp[sta][end] = (s.charAt(sta)==s.charAt(end))?dp[sta+1][end-1]+2:max(dp[sta][end-1],dp[sta+1][end])
2.最大回文子串:
用两遍延伸法,分为两种情况,奇数子串和偶数子串:
把所有字符当做中轴,遍历一遍,每当长度超过,就更新结果
*/
int l = s.length();
if (l==0)
return "";
for (int i = 0; i < l; i++) {
//奇数情况
helper(s,i,i);
//偶数情况
helper(s,i,i+1);
}
//这里注意是前闭后开区间,注意区间
return s.substring(sta,sta+max);
}
public void helper(String s,int left,int right){
//从中轴向两边延伸,注意最后的结果多了一次
while (left >= 0&& right < s.length()&& s.charAt(left)==s.charAt(right))
{
left--;
right++;
}
//由于left多减了一次,right多加了一次,所以处理要注意
if (max < right-left-1)
{
max = right-left-1;
sta = left+1;
}
}
最大回文子序列在:http://www.cnblogs.com/stAr-1/p/7444994.html
5. Longest Palindromic Substring最大回文子串的更多相关文章
- 【LeetCode】5. Longest Palindromic Substring 最大回文子串
题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum l ...
- Longest Palindromic Substring-----最长回文子串
首先讲讲什么是回文, 看看Wiki是怎么说的:回文,亦称回环,是正读反读都能读通的句子.亦有将文字排列成圆圈者,是一种修辞方式和文字游戏.回环运用得当.能够表现两种事物或现象相互依靠或排斥的关系, 比 ...
- leetcode 5 Longest Palindromic Substring--最长回文字符串
问题描述 Given a string S, find the longest palindromic substring in S. You may assume that the maximum ...
- 【LeetCode-面试算法经典-Java实现】【05-Longest Palindromic Substring(最大回文字符串)】
背景 近期開始研究算法,于是在leetcode上做算法题,第五题Longest Palindromic Substring便是关于回文子串的. 什么是回文字串 回文字符串是指将该字符串前后颠倒之后和该 ...
- [leetcode]516. Longest Palindromic Subsequence最大回文子序列
Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...
- Manacher's Algorithm && 647. Palindromic Substrings 计算回文子串的算法
注:转载自:https://www.cnblogs.com/love-yh/p/7072161.html
- C++ leetcode Longest Palindromic Substring
明天就要上课了,再过几天又要见班主任汇报项目进程了,什么都没做的我竟然有一种迷之淡定,大概是想体验一波熬夜修仙的快乐了.不管怎么说,每天还是要水一篇博文,写一个LeetCode的题才圆满. 题目:Gi ...
- 最长回文子串-LeetCode 5 Longest Palindromic Substring
题目描述 Given a string S, find the longest palindromic substring in S. You may assume that the maximum ...
- [译+改]最长回文子串(Longest Palindromic Substring) Part II
[译+改]最长回文子串(Longest Palindromic Substring) Part II 原文链接在http://leetcode.com/2011/11/longest-palindro ...
随机推荐
- FDR校正
一.假设检验 假设检验的基本思路是: 设立零假设(null hypothesis)H0,以及与零假设H0相对应的非零假设(alternative hypothesis)H1,在假设H0成立的前提下,计 ...
- golang 自学系列(三)—— if,for,channel
golang 自学系列(三)-- if,for,channel 一般情况下,if 语句跟大多数语言的 if 判断语句一样,根据一个 boolean 表达式结果来执行两个分支逻辑. 但凡总是有例外,go ...
- C语言memset用法
1.函数原型: void *memset(void *str,int c,unsigned long n): 2.参数意义: 第一个参数:数组str的起始地址:第二个参数:要赋值给数组的新值,这个值一 ...
- 使用acme.sh从Let's Encrypt申请SSL证书
Let's Encrypt 简介 Let's Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为 ...
- 创建实验楼课程app模块以及配置图片路径
1.创建course模型 1.1 创建用户模型course python ../manage.py startapp course # 创建course模型 1.2 在setting.py中注册cou ...
- Redis/Mysql/SQLite/MongoDB 数据库对比
一.Redis: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项子项展开相关方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的QTreeWidgetItem项如果一个项有子项,可以调用setE ...
- PyQt学习遇到的问题:重写notify发送的消息为什么首先给了一个QWindow对象?
在PyQt开发图形界面应用时,从QApplication派生的子类重写notify方法后(具体请参考<PyQt学习随笔:通过自定义类重写QApplication的notify方法捕获应用的所有消 ...
- PostMan参数传递
一.先取出返回中需要用的值,并设置变量 二.传入下一接口中
- PHP中双引号引起的命令执行漏洞(Kuwebs代码审计 )
在代码审计一书中提到Kuwebs的配置文件中可以利用PHP可变变量的特性执行代码 在PHP语言中,单引号和双引号都可以表示一个字符串,但是对于双引号来说,可能会对引号内的内容进行二次解释,这就可能会出 ...