关注
#include <algorithm>
//还看到了dp的做法,dp做法主要是要想出来如何将大问题分解小问题,这道题就是一个二维dp。
//用dp[i][j]表示以i开始,以j结束的字符串是否是回文串。
//当i=j时,dp[i][j] = (s[i] == s[i]) = true;
//当j = i + 1 时,dp[i][j] = (s[i] == s[i+1]);
//其他,dp[i][j] = (dp[i-1][j+1] && s[i]==s[j])
//动态规划
class Solution {
public:
string longestPalindrome(string s) {
int len = s.size();
vector<vector<int> > dp(len+1,vector<int>(len+1,0));
//dp[i][j]代表从i到j-1中是否是回文串,1代表是,0代表不是
//循环的时候i从大到小循环,j从小到大循环
int maxLen = 0;
int start = 0;
int end = 0;
for(int i=len-1;i>=0;i--)
{
for(int j=1;j<=len;j++)
{
if(i==j-1)
dp[i][j]=1;
else if((i+1==j-1)&&(s[i]==s[j-1]))
dp[i][j]=1;
else
dp[i][j]=((dp[i+1][j-1])&&(s[i]==s[j-1]));
if(dp[i][j]==1)
{
if(j-i>maxLen)
{
start = i;
end = j-1;
maxLen = j-i;
}
}
}
}
return s.substr(start,end-start+1);
}
};
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 哪些AI项目值得做? #
15546次浏览 422人参与
# 秋招笔试记录 #
397544次浏览 2193人参与
# 华泰星战营,提前锁定校招offer #
11562次浏览 353人参与
# 实习时最怕听到的一句话 #
14264次浏览 135人参与
# 90后北漂现状 #
38662次浏览 222人参与
# 找不到大厂实习可以去小厂吗? #
12302次浏览 108人参与
# 机械人,说说你的烦心事 #
143920次浏览 1150人参与
# 应届生初入职场,求建议 #
332477次浏览 2916人参与
# 简历上如何体现你的“AI”能力? #
7074次浏览 167人参与
# 你简历上最心虚的一句话 #
14488次浏览 154人参与
# 没有面试的日子里,你在做什么 #
8374次浏览 229人参与
# 携程笔试 #
162304次浏览 903人参与
# 如果有时光机,你最想去到哪个年纪? #
77071次浏览 858人参与
# 你总挂在第__面? #
5134次浏览 47人参与
# ai智能作图 #
682394次浏览 5726人参与
# 汉得笔试 #
3893次浏览 23人参与
# 24届秋招同行攻略分享 #
1478711次浏览 14432人参与
# 你知道最慷慨和最抠的公司分别是 #
7173次浏览 59人参与
# 绿盟笔试 #
3401次浏览 24人参与
# 大厂无回复,继续等待还是奔赴小厂 #
356727次浏览 2024人参与
# 机械人还在等华为开奖吗? #
333857次浏览 1628人参与

