LeetCode: Longest Palindromic Substring
来源:互联网 发布:区块链是什么 知乎 编辑:程序博客网 时间:2024/05/08 04:07
思路:动态规划方法,设置dp[i][j]表示子串s(i,...,j)是否为回文串,则分三种情况:
1. s(i,...j)长度为1时,dp[i][j] = 1;
2. s(i,..,j)长度为2时,dp[i][j] = 1(s[i] == s[j]),或者dp[i][j] = 0 (s[i] != s[j]);
3. s(i,..,j)长度大于2时,dp[i][j] = dp[i+1][j-1] (s[i] == s[j]),或者dp[i][j] = 0 (s[i] != s[j])。
求解过程中,更新最长回文子串即可。
code:
class Solution {public: string longestPalindrome(string s) { int len = s.length(); bool dp[len][len]; for(int i = 0;i < len;i++) for(int j = 0;j < len;j++) dp[i][j] = false; int Longest = 1; int frontIndex = 0; for(int i = 0;i < len;i++) dp[i][i] = true; for(int L = 1;L < len;L++) for(int i = 0;i < len;i++){ int j = i + L; if(j < len){ if(s[i] == s[j]) dp[i][j] = (i == j-1) ? true : dp[i+1][j-1]; if(dp[i][j]){ Longest = L+1; frontIndex = i; } } } return s.substr(frontIndex,Longest); }};
0 0
- LeetCode: Longest Palindromic Substring
- LeetCode Longest Palindromic Substring
- LeetCode: Longest Palindromic Substring
- [Leetcode] Longest Palindromic Substring
- [LeetCode] Longest Palindromic Substring
- Leetcode : Longest Palindromic Substring
- [LeetCode]Longest Palindromic Substring
- leetcode Longest Palindromic Substring
- LeetCode-Longest Palindromic Substring
- [LeetCode] Longest Palindromic Substring
- Longest Palindromic Substring leetcode
- LeetCode Longest Palindromic Substring
- LeetCode - Longest Palindromic Substring
- LeetCode -- Longest Palindromic Substring
- LeetCode | Longest Palindromic Substring
- LeetCode: Longest Palindromic Substring
- [LeetCode]Longest Palindromic Substring
- leetcode Longest Palindromic Substring
- PyCharm 使用教程
- boost服务器
- Bind
- 面试问题之线程同步和死锁
- 获取与修改android自带日历日程
- LeetCode: Longest Palindromic Substring
- Listen
- Connect
- Database Engine service could not resolve the specified file location
- Android需要大量内存时自己设置堆大小
- Accept
- lenovo win7激活
- Matlab学习笔记 奇异值、奇异矩阵、svd函数
- 阿里巴巴2011届实习生招聘笔试题及分析