[LeetCode] Longest Palindromic Substring
2015-04-04 13:58
375 查看
// O(n^2) time and O(1) space // Given a center, either one letter or two letter, // Find longest palindrome private String expandCenter(String s, int left, int right) { while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) { --left; ++right; } ++left; return s.substring(left, right); } public int longestPalindromicSubstring(String s) { if (s == null || s.isEmpty()) return 0; //return "" here if it wants the actual string String max = s.substring(0,1); for (int i = 0; i < s.length()-1; ++i) { //it could be no "-1", also correct // get longest palindrome with center of i, i+1 String palindrome = expandCenter(s, i, i+1); max = palindrome.length() > max.length() ? palindrome : max; // get longest palindrome with center of i palindrome = expandCenter(s, i, i); max = palindrome.length() > max.length() ? palindrome : max; } return max.length();//return max here if it wants the max string }
manacher algorithm:
从这里来的http://www.felix021.com/blog/read.php?2040
int p[1000], mx = 0, id = 0; memset(p, 0, sizeof(p)); for (i = 1; s[i] != '\0'; i++) { p[i] = mx > i ? min(p[2*id-i], mx-i) : 1; while (s[i + p[i]] == s[i - p[i]]) p[i]++; if (i + p[i] > mx) { mx = i + p[i]; id = i; } }
相关文章推荐
- 【leetcode 003】Longest Palindromic Substring || ZigZag Conversion
- leetCode Longest Palindromic Substring
- leetcode--Longest Palindromic Substring
- leetcode——5——Longest Palindromic Substring
- leetcode python - Longest Palindromic Substring
- Leetcode: Longest Palindromic Substring
- leetCode—Longest Palindromic Substring
- 【Leetcode】Longest Palindromic Substring
- LeetCode Longest Palindromic Substring
- LeetCode005__Longest Palindromic Substring
- LeetCode 5 - Longest Palindromic Substring
- leetcode - 5.Longest Palindromic Substring
- leetcode(5) Longest Palindromic Substring
- leetcode Longest Palindromic Substring(C)
- LeetCode(5) Longest Palindromic Substring
- leetcode - Longest Palindromic Substring
- Leetcode: Longest Palindromic Substring. java
- LeetCode题解——Longest Palindromic Substring
- [leetcode] 【字符串】 5. Longest Palindromic Substring
- 【LeetCode】Longest Palindromic Substring 解题报告