Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example:
Example:
解法1:DP: O(N^2)
字符串的问题,如果牵涉到substring(i,j)的,要是往dp方向上考虑就需要用二维的。这题也不例外。
dp[i][j]表示的是,(i,j)这个字符串是否是palindrome。
有三种情况可以考虑,一个是i == j, 一个是相邻,还有一个是距离大于2。
每次找到一个palindrome的时候都更新下max,同时也更新一下res的string。
要注意的是我们要求矩阵从下往上搜索,并且j >= i, 所以我们只搜索了上半部的矩阵。
Java
解法2:O(n^2) Time, O(1) Space
Java