24-Longest Palindromic Substring-Leetcode
2024-10-19 17:39:49
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.
这里给出一种AC的动态规划解法:时间和空间复杂度O(n2)
f(i,j)表示范围在(i,j)的串是否在回文串,同时记录最大回文串长度和起始位置
f(i,j)=(s[i]==s[j]and(i−j<2orf[i+1][j−1]))i−j>=2
f[i][i]=true;
class Solution {
public:
string longestPalindrome(string s) {
const int n=s.size();
bool f[n][n];
fill_n(&f[0][0],n*n,false);
size_t max_len = 1,start =0;
for(size_t i =0;i<s.size();++i){
f[i][i]=true;
for(size_t j=0;j<i;++j){
f[j][i]=(s[j]==s[i]&&(i-j<2||f[j+1][i-1]));
if(f[j][i]&&max_len<(i-j+1))
{
max_len = i-j+1;
start = j;
}
}
}
return s.substr(start,max_len);
}
};
最新文章
- Top Coder算法题目浏览器
- spark 问题
- nyist 78 圈水池
- Unix/Linux编程实践教程(三:代码、测试)
- 重写js alert
- CentOS升级git
- 浅谈hadoop中mapreduce的文件分发
- 使用shell命令分析统计日志
- 《JS权威指南学习总结--第五章语句》
- PHP中的 !== 与 !=
- Android 获取某apk的签名信息,可用作防盗版进入。
- 二、linux的安装
- IDEA 编译 Jmeter 4.0 ( 二次开发_1 )
- truncate、delete、drop区别
- VS2013+QT5.3 中文乱码和中文路径不识别
- hdu 1074 (状压dp)
- charles抓包工具使用方法
- 轻松解决vuejs跨域
- 15 int *ptr= (int *)(&;a+1)跨了整个数组长度
- grep正则表达的零宽断言