Manacher计算回文子串-O(n)
来源:互联网 发布:淘宝号信誉查询网址 编辑:程序博客网 时间:2024/05/22 09:48
Manacher计算回文子串-O(n)
最长回文子串问题:给定一个字符串,求它的最长回文子串长度。
解释
java代码
public class Solution { public String longestPalindrome(String s) { if(s.equals("")){ return ""; } int length=s.length(); String str=""; for(int i=0;i<length;i++){ str=str+"#"+s.charAt(i); } str=str+"#"; int lengthstr=2*length+1; int MaxRight=0; int pos=0; int[] RL=new int[lengthstr]; int count=0; int value=0; for(int i=0;i<lengthstr;i++){ if(i>=MaxRight){ RL[i]=1; }else{ RL[i]=(RL[2*pos-i]>MaxRight-i?MaxRight-i:RL[2*pos-i]); } while((i>=RL[i])&&(i+RL[i]<lengthstr)&&(str.charAt(i-RL[i])==str.charAt(i+RL[i]))){ RL[i]++; } if( RL[i]+i-1>MaxRight){ MaxRight=RL[i]+i-1; pos=i; } if(RL[i]-1>value){ count=i; value=RL[i]-1; } } String result=str.substring(count-value,count+value+1); result=result.replaceAll("#",""); return result; }}
0 0
- Manacher计算回文子串-O(n)
- Manacher算法--O(n)回文子串算法
- Manacher算法--O(n)回文子串算法
- 求回文子串 O(n) manacher算法
- 求回文子串O(n) manacher 算法
- O(n)回文子串(Manacher)算法
- Manacher算法--O(n)回文子串算法(转载)
- Manacher算法--O(n)回文子串算法
- 最长回文子串算法-- Manacher算法--O(n)
- Manacher算法--O(n)回文子串算法
- POJ3974-Manacher算法--O(n)回文子串算法
- (Manacher)算法----O(n)回文子串
- Manacher算法,O(n)回文子串算法
- Manacher算法--O(n)回文子串算法
- Manacher算法:最长回文子串O(n)
- Manacher算法--O(n)内求回文子串
- manacher算法 (O(n)求最长回文子串)
- Manacher算法----O(n)回文子串算法
- Oracle试图--v$event_name
- 因系统版本差异而引起的datepicker样式改变
- CALayer绘制折线图
- 【工作效率】Facebook内部25个高效工作PPT指南
- 5-3+一点点
- Manacher计算回文子串-O(n)
- org.springframework.web.context.request.RequestContextListener作用
- SpringMVC源码剖析(二)- DispatcherServlet的前世今生
- Linux 服务器带宽异常跑满分析解决
- spark-submmit视频(2017年2月8日-9日)
- 中小电商如何与全球400余家快递物流公司做接口对接
- 【caffe-Windows】训练自己数据——数据集格式转换
- LeetCode :Count Primes
- angular学习(十三)——Component