# Longest Palindromic Substring Leetcode Solution

In this post, we are going to solve theÂ Longest Palindromic Substring Leetcode SolutionÂ problem of Leetcode. This Leetcode problem is done in many programming languages like C++, Java, and Python.

## Problem

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

A string is called a palindrome string if the reverse of that string is the same as the original string.

Example 1:

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

Example 2:

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

Constraints:

• `1 <= s.length <= 1000`
• `s`Â consist of only digits and English letters.

Now, letâ€™s see the code of Longest Palindromic Substring Leetcode Solution.

### Longest Palindromic Substring Leetcode Solutionin Python

```class Solution:
def longestPalindrome(self, s: str) -> str:
p = ''
for i in range(len(s)):
p1 = self.get_palindrome(s, i, i+1)
p2 = self.get_palindrome(s, i, i)
p = max([p, p1, p2], key=lambda x: len(x))
return p

def get_palindrome(self, s: str, l: int, r: int) -> str:
while l >= 0 and r < len(s) and s[l] == s[r]:
l -= 1
r += 1
return s[l+1:r]```

### Longest Palindromic Substring Leetcode Solutionin CPP

```class Solution {
public:
string longestPalindrome(string s)
{
int len = s.size();
int dp[len][len];
memset(dp,0,sizeof(dp));
int end=1;
int start=0;

for(int i=0;i<len;i++)
{
dp[i][i] = 1;
}
for(int i=0;i<len-1;i++)
{
if(s[i]==s[i+1])
{ dp[i][i+1]=1;start=i;end=2;}
}

for(int j=2;j<len;j++)
{
for(int i=0;i< len-j;i++)
{
int left=i; //start point
int right = i+j;  //ending point

if(dp[left+1][right-1]==1 && s[left]==s[right])
{
dp[left][right]=1; start=i; end=j+1;
}
}
}
return s.substr(start, end);
}
};```

### Longest Palindromic Substring Leetcode Solution in Java

```class Solution {
public String longestPalindrome(String s) {
int n = s.length(), start = 0, end = 0;
boolean[][] dp = new boolean[n][n];

for (int len=0; len<n; len++) {
for (int i=0; i+len<n; i++) {
dp[i][i+len] = s.charAt(i) == s.charAt(i+len)
&& (len < 2 || dp[i+1][i+len-1]);
if (dp[i][i+len] && len > end - start) {
start = i;
end = i + len;
}
}
}

return s.substring(start, end + 1);
}
}```

Note:Â This problemÂ Longest Palindromic SubstringÂ is generated byÂ LeetcodeÂ but the solution is provided byÂ Chase2learn This tutorial is only forÂ EducationalÂ andÂ LearningÂ purposes.

Sharing Is Caring