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"
Solution:
This approach is using Dynamic Programming.
Time complexity: O(n^2).
Two nested traversals are needed.
Auxiliary Space: O(n^2).
Matrix of size n*n is needed to store the dp array.