leetcode 5. Longest Palindromic Substring
来源:互联网 发布:sftp用的什么端口 编辑:程序博客网 时间:2024/06/06 04:12
Discription
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example:
Input: “babad”
Output: “bab”
Note: “aba” is also a valid answer.
Example:
Input: “cbbd”
Output: “bb”
思路
回文串题型基本都是动态规划。
设dp[i][j] 表示s[i:j]所构成字符串对应回文串长度,若不是则dp[i][j] = -1;
递归方程如下
时间复杂度:
空间复杂度:
代码
class Solution {public: string longestPalindrome(string s) { vector<vector<int>> dp(s.size(), vector<int>(s.size(), 0)); //dp[i][j] 表示s[i:j]对应回文串长度 for (int i = 0; i < s.size(); i++) { for (int j = 0; j < s.size(); j++) { if (i == j) dp[i][j] = 1; // "a" 构成回文串 if (i < j) dp[i][j] = -1; } } int max_start = 0, max_len = 1; for (int len = 2; len <= s.size(); len++) { for (int start = 0; start + len - 1 < s.size(); start++) { int end = start + len - 1; if (s[start] == s[end]) { if (dp[start + 1][end - 1] >= 0) { //case 1: "bb" dp[start][end] = dp[start + 1][end - 1] + 2; //case 2: "bab" if (len > max_len) { max_len = len; max_start = start; } } } } } return s.substr(max_start, max_len); }};
特殊样例
“bb”
“bab”
阅读全文
0 0
- LeetCode 5. Longest Palindromic Substring
- LeetCode --- 5. Longest Palindromic Substring
- LeetCode 5.Longest Palindromic Substring
- [Leetcode] 5. Longest Palindromic Substring
- [LeetCode]5.Longest Palindromic Substring
- [leetcode] 5. Longest Palindromic Substring
- LeetCode-5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- Leetcode 5. Longest Palindromic Substring
- LeetCode 5. Longest Palindromic Substring
- Leetcode 5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- LeetCode-5. Longest Palindromic Substring
- Leetcode 5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- LeetCode *** 5. Longest Palindromic Substring
- 【leetcode】5. Longest Palindromic Substring
- 京东达达前端面试题
- 线段树--点修改(uva12299)
- For , while , do…while的死循环.
- 在php中设置sessionid的httponly属性
- 跟着姜少学Java基础编程之五:Scanner、Random、String
- leetcode 5. Longest Palindromic Substring
- 打印机-顾客进程同步
- IO--打印流
- jQuery基础 | 选择器
- 宏基因组分析教程-Analysis of Metagenomic Data
- java IO笔记(RandomAccessFile)
- 计蒜客 17118 Maximum Flow(2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E)
- SQL Server学习笔记3:数据库中表的插入、删除、修改、合并
- android build system