https://leetcode.com/problems/longest-palindromic-substring/#/solutions
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example:
Input: "babad" Output: "bab" Note: "aba" is also a valid answer.
Example:
Input: "cbbd" Output: "bb"
package go.jacob.day705;
/*
* [leetcode]5. Longest Palindromic Substring
*
*
*/
public class Demo2 {
private int left, maxLen;
public String longestPalindrome(String s) {
if (s == null || s.length() < 2)
return s;
for (int i = 0; i < s.length() - 1; i++) {
//考虑两种情况:1.中间是bab;2.中间是bb;
findMaxPalindrome(s, i, i);
findMaxPalindrome(s, i, i + 1);
}
return s.substring(left, left + maxLen);
}
private void findMaxPalindrome(String s, int i, int j) {
while (i >= 0 && j < s.length() && s.charAt(i) == s.charAt(j)) {
i--;
j++;
}
if (maxLen < j - i - 1) {
left = i+1;
maxLen = j - i - 1;
}
}
}