Leetcode 5 Longest Palindromic Substring DP
Given a string s
, return the longest palindromic substring in s
.
Solution
设 表示字串 是否为回文串。初始化时,每个单独的字符本身就是回文串;长度为2的串只要首尾相同,也是回文串;长度 时,只有满足:
此时 也就是回文串。因此循环内侧的 时,应倒序遍历
点击查看代码
class Solution { private: bool dp[1003][1003]; int MAX = -1; int ansl, ansr; public: string longestPalindrome(string s) { int n = s.length(); for(int i=0;i<n;i++){ dp[i][i] = true; MAX = 1; ansl = i; } for(int j=1;j<n;j++){ for(int i=j-1;i>=0;i--){ if(i+1==j){ if(s[i]==s[j])dp[i][j] = true; else dp[i][j] = false; } else{ if(s[i]==s[j] && dp[i+1][j-1])dp[i][j] = true; else dp[i][j] = false; } if(dp[i][j]){ if(MAX<j-i+1)MAX = j-i+1, ansl = i, ansr = j; } } } return s.substr(ansl, MAX); } };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】