LeetCode 5.Longest Palindromic Substring
来源:互联网 发布:js new 数组 编辑:程序博客网 时间:2024/06/12 21:58
1. manacher算法 22ms
public class Solution { private int min(int a, int b){ return a < b ? a : b; } public String longestPalindrome(String s) { if (null == s || 0 == s.length()) { return ""; } int len = (s.length() << 1) + 1; char[] srcString = new char[len]; for (int i = 0; i < len; i++) { if (0 == i % 2) { srcString[i] = '~'; } else { srcString[i] = s.charAt(i >> 1); } } int ansIdx = 0; int mxIdx = 0; int mx = 0; int[] p = new int[len]; for (int i = 0; i < len; i++) { if (mx < i) { p[i] = 1; } else { p[i] = min(p[(mxIdx << 1) -i], mx - i); } while (len > i + p[i] && 0 <= i - p[i]) { if (srcString[i + p[i]] == srcString[i - p[i]]) { p[i]++; }else{ break; } } if ( p[i] + i - 1 > mx){ mx = p[i] + i - 1; mxIdx = i; } if (p[i] > p[ansIdx]){ ansIdx = i; } } int start = ansIdx + 1 - p[ansIdx]; int end = ansIdx + p[ansIdx] - 1; return s.substring(start >> 1, end >> 1); } }
0 0
- LeetCode 5. Longest Palindromic Substring
- LeetCode --- 5. Longest Palindromic Substring
- LeetCode 5.Longest Palindromic Substring
- [Leetcode] 5. Longest Palindromic Substring
- [LeetCode]5.Longest Palindromic Substring
- [leetcode] 5. Longest Palindromic Substring
- LeetCode-5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- Leetcode 5. Longest Palindromic Substring
- LeetCode 5. Longest Palindromic Substring
- Leetcode 5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- LeetCode-5. Longest Palindromic Substring
- Leetcode 5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- LeetCode *** 5. Longest Palindromic Substring
- 【leetcode】5. Longest Palindromic Substring
- 十二月英语总结
- Time && Mathf
- Hadop案例之WordCount
- 对象的引用
- 记负均正
- LeetCode 5.Longest Palindromic Substring
- Android传递简单的数据
- Java之——使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包
- BZOJ 1951 古代猪文 鲁卡斯定理+费马小定理+中国剩余定理
- 10.生产者消费者模型
- 最大间隙问题。给定 n 个实数,求这n个实数在数轴上相邻2个数之间的最大差值,设计解最大间隙问题的线性时间算法。
- CentOS + Eclipse + JDK1.7安装
- 蓝桥杯-算法训练-2的次幂表示
- 2.Spring学习笔记之装配Bean