5. Longest Palindromic Substring -- 【M】Amazon Bloomberg Microsoft 面经必考经典多练习
https://leetcode.com/problems/longest-palindromic-substring/
最优:中间展开法 时间O(n ^ 2) 空间O(1)
https://discuss.leetcode.com/topic/23498/very-simple-clean-java-solution
五种方法合集:
http://wdxtub.com/interview/14520604914478.html
中间展开法
public class Solution {
private int start, max;
public String longestPalindrome(String s) {
if (s == null || s.length() < 2)
return s;
for (int i = 0; i < s.length(); i++) {
extendPalindrome(s, i, i); // check for odd length palindrome
extendPalindrome(s, i, i + 1); // check for even length palindrome
}
return s.substring(start, start + max);
}
private void extendPalindrome(String s, int j, int k) {
while (j >= 0 && k < s.length() && s.charAt(j) == s.charAt(k)) {
j--;
k++;
}
if (max < k - j - 1) {
start = j + 1;
max = k - j - 1;
}
}
}
动规方法还没有看
http://www.cnblogs.com/yuzhangcmu/p/4189068.html
**总结:
本质: