Given a string s, find the longest palindromic substring in s. You may assume that the maximum
Example:
Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.
Example:
Input: "cbbd"
Output: "bb"
想到了奇数偶数的情况但是想歪了,想到动态规划去了。。后来参考了一下别人的提交的,mark
ps:最近总是把if写成while。。。需要留意
public class Solution {
int begin, maxLen = 0;
public String longestPalindrome(String s) {
int len = s.length();
if (len < 2) {
return s;
}
for (int i = 0; i < len-1; i++) {
extendPalindrome(s, i, i);
extendPalindrome(s, i, i+1);
}
return s.substring(begin, maxLen + begin);
}
private void extendPalindrome(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) {
maxLen = j - i - 1;
begin = i + 1;
}
}
}