top of page
Search

# Longest Palindromic Substring

Given a string s, return the longest palindromic substring in s.

Example 1:

```Input: s = "babad"
Output: "bab"
Note: "aba" is also a valid answer.
```

Example 2:

```Input: s = "cbbd"
Output: "bb"
```

Example 3:

```Input: s = "a"
Output: "a"
```

Example 4:

```Input: s = "ac"
Output: "a"
```

Constraints:

• 1 <= s.length <= 1000

• s consist of only digits and English letters (lower-case and/or upper-case),

Solution:

```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;
}
}
}```