Question
Given a string s, return the longest palindromic substring in s.
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 <= 1000sconsist of only digits and English letters.
Python Solution
class Solution:
def longestPalindrome(self, s: str) -> str:
start = 0
max_len = 1
l = len(s)
dp_matrix = [[0 for i in range (l)] for j in range (l)]
# diagonal single characters
for i in range(l):
dp_matrix[i][i] = 1
# two characters like ba, ab, ba, ad
for i in range (l-1):
if s[i]==s[i+1]:
dp_matrix[i][i+1] = 1
max_len = 2
start = i
# general case for strings of len>=3
k=3
while k<=l:
for i in range(l-k+1):
j=i+k-1
if s[i]==s[j] and dp_matrix[i+1][j-1]:
dp_matrix[i][j] = 1
if k>max_len:
max_len = k
start = i
k+=1
return s[start:start+max_len]

![[Solved] You are given an integer n and an integer start. Define an array nums where nums[i] = start + 2 * i (0-indexed) and n == nums.length. Return the bitwise XOR of all elements of nums.](https://machinelearningprojects.net/wp-content/uploads/2022/09/Leetcode-solutions-MLP-Feature-Image-1024x536.webp)