Leetcode 5. Longest Palindromic Substring
题目
Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.Input: "cbbd"
Output: "bb"思路
解答
class Solution {
int minI = 0;
int maxJ = 0;
int maxLen = 0;
public String longestPalindrome(String s) {
if (s == null || s.length() < 1) return "";
int i = 0, j = 0;
// iterate through 2n + 1 positions to expand from center to get panlindrome
while (i < s.length() && j < s.length()) {
expand(s, i, j++);
expand(s, i++, j);
}
return s.substring(minI, maxJ);
}
// Expand from center to construct panlindrome
private void expand(String s, int i, int j) {
while (i >= 0 && j < s.length() && s.charAt(i) == s.charAt(j)) {
i--;
j++;
}
if (j - i + 1 > maxLen) {
maxLen = j - i + 1;
minI = i + 1;
maxJ = j;
}
}
}
Complexity Analysis
总结
Last updated