Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example 1:
Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.
Example 2:
Input: "cbbd"
Output: "bb"
class Solution {
int resultStart;
int resultLength;
public String longestPalindrome(String s) {
int strLength = s.length();
if (strLength < 2) {
return s;
}
for (int start = 0; start < strLength - 1; start++) {
expandRange(s, start, start);
expandRange(s, start, start + 1);
}
return s.substring(resultStart, resultStart + resultLength);
}
private void expandRange(String str, int begin, int end) {
while (begin >= 0 && end < str.length() && str.charAt(begin) == str.charAt(end)) {
begin--;
end++;
}
if (resultLength < end - begin - 1) {
resultStart = begin + 1;
resultLength = end - begin - 1;
}
}
}