题解 | #最长回文子序列#

最长回文子序列

https://www.nowcoder.com/practice/82297b13eebe4a0981dbfa53dfb181fa

dp[i][j]表示字符串s的下标范围[i,j]内的最长回文子序列的长度,假设字符串s的长度为n,当0\le i\le j < n时,才满足dp[i][j]>0,否则dp[i][j]=0。

初始化:由于任何长度为1的子序列都是回文子序列,所以对于任意的0\leq i < n,都有dp[i][i]=1

状态转移:

当i<j时,计算dp[i][j]需要考虑s[i]和s[j]相等和不相等的情况:

  1. 如果s[i]==s[j],则s的下标范围[i+1,j-1]内的最长回文子序列,在该最长回文子序列的首位分别添加s[i]和s[j],得到了下标范围[i,j]的最长回文子序列,所以 dp[i][j] = dp[i+1][j-1] + 2
  2. 如果s[i]≠s[j],s[i]和s[j]不可能同时作为一个回文子序列的首尾,所以dp[i][j] = max( dp[i+1][j], dp[i][j-1])

#include <iostream>
using namespace std;
const int N = 1001;
//dp[i][j]: 字符串 s的[i~j]的子串的最长回文子序列的长度,答案:dp[0][n-1]
int dp[N][N];
int main() {
    string s;
    cin >> s;
    int n = s.size();
    for(int i = n-1; i>-1; i--){
        dp[i][i] = 1;  
        for(int j=i+1;j<n;j++){
            if(s[i]==s[j]){  // s[i]==s[j]说明这个字符可以加入到s的子串s[i~j]的最长回文子序列中
                dp[i][j] = dp[i+1][j-1]+2;
            }else{
                dp[i][j] = max(dp[i][j-1],dp[i+1][j]);
            }
        }
    }
    cout << dp[0][n-1];
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
11099次浏览 95人参与
# 你的实习产出是真实的还是包装的? #
1960次浏览 42人参与
# 巨人网络春招 #
11373次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7644次浏览 43人参与
# 简历第一个项目做什么 #
31750次浏览 341人参与
# 重来一次,我还会选择这个专业吗 #
433557次浏览 3926人参与
# MiniMax求职进展汇总 #
24125次浏览 309人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187217次浏览 1122人参与
# 牛客AI文生图 #
21452次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152461次浏览 888人参与
# 研究所笔面经互助 #
118967次浏览 577人参与
# 简历中的项目经历要怎么写? #
310376次浏览 4219人参与
# AI时代,哪些岗位最容易被淘汰 #
63853次浏览 828人参与
# 面试紧张时你会有什么表现? #
30516次浏览 188人参与
# 你今年的平均薪资是多少? #
213147次浏览 1039人参与
# 你怎么看待AI面试 #
180154次浏览 1258人参与
# 高学历就一定能找到好工作吗? #
64334次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76547次浏览 374人参与
# 我的求职精神状态 #
448145次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363530次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160683次浏览 1112人参与
# 校招笔试 #
471238次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务