- 最长回文字串题型
- 我一个想法,回文的作用有哪些哦?
eg:
abccba
- 动态规划
class Solution {
public:
string longestPalindrome(string s) {
int len = s.length(), max = 1, ss = 0, tt = 0;
bool flag[len][len];
for (int i = 0; i < len; i++)
for (int j = 0; j < len; j++)
if (i >= j)
flag[i][j] = true;
else flag[i][j] = false;
for (int j = 1; j < len; j++)
for (int i = 0; i < j; i++)
{
if (s[i] == s[j])
{
flag[i][j] = flag[i+1][j-1];
if (flag[i][j] == true && j - i + 1 > max)
{
max = j - i + 1;
ss = i;
tt = j;
}
}
else flag[i][j] = false;
}
return s.substr(ss, max);
}
};
- 运行时间较长
这位码友,总结的非常全面,所提到的动态转移方程这个名词倒是十分的新鲜(2015.12.4)
回文字符串的子串也是回文,比如P[i,j](表示以i开始以j结束的子串)是回文字符串,那么P[i+1,j-1]也是回文字符串
p[i,j]=0表示作为字串的p[i,j]不是回文字串
p[i,j]=1 …
p[i,i]=1
本文详细介绍了如何使用动态规划解决最长回文子串问题,包括算法原理、实现细节及优化思考。
603

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



