class Solution {
public:
string longestPalindrome(string s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (s.size() == 0) return "";
int mat[1002][1002];
int length = s.size();
mat[0][0] = 0;
for (int i = 1; i <= s.size(); ++i)
{
mat[0][i] = 0;
mat[i][0] = 0;
}
int maxLength = 0;
int maxI = -1, maxJ = -1;
for (int i = 1; i <= length; ++i)
{
for (int j = 1; j <= length; ++j)
{
if (s[i - 1] == s[length - j])
{
mat[i][j] = mat[i - 1][j - 1] + 1;
if (mat[i][j] > maxLength)
{
maxLength = mat[i][j];
maxI = i, maxJ = j;
}
}
else
mat[i][j] = 0;
}
}
return s.substr(maxI - maxLength, maxLength);
}
};[Leetcode] Longest Palindromic Substring
最新推荐文章于 2024-10-11 23:48:39 发布
本文介绍了一个使用C++实现的算法,用于寻找给定字符串中最长的回文子串。通过动态规划方法构建二维矩阵来跟踪子串是否为回文,最终返回最长回文子串。
286

被折叠的 条评论
为什么被折叠?



