Leetcode5: Longest Palindromic Substring
来源:互联网 发布:淘宝服装卡片祝福语 编辑:程序博客网 时间:2024/05/18 04:30
5. Longest Palindromic Substring
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.
题意:
求一个string的最大回文子串的问题。
解答:
利用动态规划。
如果S[i...j]是一个回文子串的话,那么要是S[i-1]==S[j+1],则S[i-1...j+1]也是一个回文子串。依据这个来寻找最长的回文子串。
代码:
class Solution {public: string longestPalindrome(string s) { int dp[1000][1000]={0}; int start=0, maxLen=1; // 每个字符自身就是一个回文子串 for(int i=0; i<s.size(); i++) dp[i][i]=1; for(int i=0; i<s.size()-1; i++){ if(s[i]==s[i+1]){ dp[i][i+1]=1; maxLen=2; start=i; } } int sLen=s.size(); for(int len=3; len<=sLen; len++){ for(int i=0; i<sLen-len+1; i++){ int j=i+len-1; // 动态规划 if(s[i]==s[j] && dp[i+1][j-1]==1){ dp[i][j]=1; maxLen=len; start=i; } } } return s.substr(start, maxLen); }};
根据代码可知,时间复杂度为O(n^2)。
这一题还有一种时间复杂度为O(n)的解法,会更新的~
0 0
- LeetCode5:Longest Palindromic Substring
- [LeetCode5]Longest Palindromic Substring
- leetcode5-Longest Palindromic Substring
- leetcode5 Longest Palindromic Substring
- leetcode5 Longest Palindromic Substring
- LeetCode5:Longest Palindromic Substring
- LeetCode5. Longest Palindromic Substring
- leetcode5. Longest Palindromic Substring
- Leetcode5: Longest Palindromic Substring
- LeetCode5. Longest Palindromic Substring
- leetcode5. Longest Palindromic Substring
- leetcode5. Longest Palindromic Substring
- LeetCode5-Longest Palindromic Substring
- LeetCode5. Longest Palindromic Substring
- Longest Palindromic Substring(leetcode5)
- Leetcode5. Longest Palindromic Substring
- leetcode5 Longest Palindromic Substring
- [Java]LeetCode5 Longest Palindromic Substring
- JAVA keytool工具
- 探索 OpenStack 之(10):深入镜像服务Glance
- 传输层(2)-UDP协议
- hihoCoder 1383 2016网预 北京
- C/C++ 友元
- Leetcode5: Longest Palindromic Substring
- easyui安装
- 数据结构总结
- [阶段二]Intent和IntentFilter
- uva 208/Firetruck
- iOS 颜色渐变圆环
- struts2.5动态方法绑定问题
- 汉诺塔问题
- *[Lintcode]Flatten Nested List Iterator 摊平嵌套的列表