Longest Palindromic Substring Medium
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"
private int lo = 0, max = 0;
public String longestPalindrome(String s) {
char[] cS = s.toCharArray();
for (int i = 0; i < cS.length - 1; ++i) {
findPalindrome(cS, i, i);
findPalindrome(cS, i, i + 1);
}
return s.substring(lo, lo + max);
}
private void findPalindrome(char[] cS, int i, int j) {
while (i >= 0 && j < cS.length) {
if (cS[i] != cS[j]) {
break;
}
--i;
++j;
}
if (max < j - i - 1) {
max = j - i - 1;
lo = i + 1;
}
}
思路:穷举法,从中间(注意中间为空或中间为一个元素两种情况)扩展,存最大可能。注意substring区间前闭后开[start,end)