ACM

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1010;
char S[maxn];
int dp[maxn][maxn]; int main()
{
gets(S);
int len = strlen(S), ans = 1;
memset(dp, 0, sizeof(dp));
for (int i = 0; i < len; i++)
{
dp[i][i] = 1;
if (i < len - 1)
{
if (S[i] == S[i + 1])
{
dp[i][i + 1] = 1;
ans = 2;
}
}
}
// 状态转移方程
for (int L = 3; L <= len; L++)
{
for (int i = 0; i + L - 1 < len; i++)
{
int j = i + L - 1;
if (S[i] == S[j] && dp[i + 1][j - 1] == 1)
{
dp[i][j] = 1;
ans = L;
}
}
}
cout << ans;
system("pause");
}

核心代码

#include <bits/stdc++.h>
using namespace std; class Solution
{
public:
int getLongestPalindrome(string A, int n)
{
int maxR = 1;
// 创建dp数组
vector<vector<int>> dp;
vector<int> tmp;
tmp.insert(tmp.begin(), n, 0);
for (int i = 0; i < n; i++)
{
dp.push_back(tmp);
}
// 边界条件
for (int i = 0; i < n; i++)
{
dp[i][i] = 1;
if (i < n - 1)
{
if (A[i] == A[i + 1])
{
dp[i][i + 1] = 1;
maxR = 2;
}
}
}
// 状态转移
for (int len = 3; len <= n; len++)
{
// 枚举左端点i
for (int i = 0; i + len - 1 < n; i++)
{
int j = i + len - 1;
if (A[i] == A[j] && dp[i + 1][j - 1] == 1)
{
dp[i][j] = 1;
maxR = len;
}
}
}
return maxR;
}
}; int main()
{
string str;
cin >> str;
int n = str.length();
Solution solution;
cout << solution.getLongestPalindrome(str, n) << endl;
system("pause");
}

最新文章

  1. Yslow-23条规则
  2. Uva1398 Meteor
  3. PHP使用数据库的并发问题(转)
  4. ios应用数据存储的常用方式 ios7.1应用沙盒
  5. python(3)-集合
  6. 函数 xdes_get_state
  7. 对MMU段式转换的理解
  8. float
  9. springMVC servlet 静态资源加载
  10. Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法[转]
  11. 你知道android的MessageQueue.IdleHandler吗?
  12. bootstarp模板02
  13. 全球第一免费开源ERP Odoo仓存功能模块深度应用(一)
  14. Java对象序列化全面总结
  15. [java初探总结篇]__java初探总结
  16. 如何在 ASP.NET Core 测试中操纵时间?
  17. 学Android开发的人可以去的几个网站
  18. 【Python】使用torrentParser1.03对单文件torrent的分析结果
  19. python -- numpy 基本数据类型,算术运算,组合,分割 函数
  20. Spring Boot 上传文件 获取项目根路径 物理地址 resttemplate上传文件

热门文章

  1. ArrayList 源码分析和自定义ArrayList实现
  2. 从0到1使用Kubernetes系列(七):网络
  3. robotframework-autoitlibrary离线安装
  4. mysql 数据库中 int(3) 和 int(11) 有区别么???
  5. Java 操作符小记
  6. git使用小技巧
  7. Python迭代器生成器与生成式
  8. SpringCloud升级之路2020.0.x版-44.避免链路信息丢失做的设计(2)
  9. R包对植物进行GO,KEGG注释
  10. ss 显示socket状态