Longest Palindromic Substring (Java)
来源:互联网 发布:淘宝店铺编辑宝贝 编辑:程序博客网 时间:2024/06/03 23:05
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.
这道题可以套用Palindrome Partitioning的解题思路不过会超时,暴力也会超时。
有一种Manacher's Algorithm的算法可以将空间复杂度和时间复杂度都降到O(n),下次写注意下。
参考别人用的是时间复杂度O(n^2),空间复杂度O(1)的方法。
"aba" "abba"这两种奇偶中心不一致的情况分开讨论。从中心向两边找。
Source
public String longestPalindrome(String s) { if(s.length() == 0) return s; String str = s.substring(0, 1); for(int i = 0; i < s.length(); i++){ String temp = center(s, i, i); //奇数为中心 if(temp.length() > str.length()) str = temp; temp = center(s, i, i + 1);//偶数为中心 if(temp.length() > str.length()) str = temp; } return str; } public String center(String s, int begin, int end){ //从中心往外找 while(begin >= 0 && end <= s.length() - 1 && s.charAt(begin) == s.charAt(end)){ begin --; end ++; } return s.substring(begin + 1, end); }
Test
public static void main(String[] args){ String s = "abba"; String a = new Solution().longestPalindrome(s); System.out.println(a); }
0 0
- Longest Palindromic Substring Java
- Longest Palindromic Substring (Java)
- [Leetcode] Longest Palindromic Substring (Java)
- Longest Palindromic Substring leetcode java
- [Java]LeetCode5 Longest Palindromic Substring
- [LeetCode][Java]Longest Palindromic Substring
- LeetCode-Longest Palindromic subString(java)
- LeetCode : Longest Palindromic Substring [java]
- leetcode:Longest Palindromic Substring java
- [LeetCode]Longest Palindromic Substring(Java)
- [LeetCode] Longest Palindromic Substring(java)
- leetcode Longest Palindromic Substring(Java)
- Java Longest Palindromic Substring(最长回文字符串)
- Java Longest Palindromic Substring(最长回文字符串)
- 【leetcode with java】5 Longest Palindromic Substring
- java Longest Palindromic Substring(最长回文字符串)
- [leetcode-5]Longest Palindromic Substring(java)
- leetcode 005 Longest Palindromic Substring(java)
- spring mvc @RequestMapping_method_params_value 传递id不带占位符
- 菜单(二)
- 负数的二进制表示方法
- NVIDIA Jetson TK1学习与开发(七):图文详解OpenCV在Jetson TK1上的安装和使用
- Redhat Enterprise Linux Advanced Server 4上安装MYSQL+APACHE+PHP+ZEND问题
- Longest Palindromic Substring (Java)
- 分页的封装——java实现(基于oracle)
- 在Macbook上搭建Android开发环境
- HTML代码
- 值得一看的资料网站
- 关于cocos2dx 中 std::vector中删除某个元素的认识
- [C++]LeetCode: 115 Permutations (求一组数的全排列)
- Catalan数计算及应用
- 关于verilog里阻塞与非阻塞赋值的个人理解