LeetCoder 5. Longest Palindromic Substring
来源:互联网 发布:淘宝装修软件破解版 编辑:程序博客网 时间:2024/05/29 14:57
题意
求一个字符串的最长回文子串
思路
解法一:
暴力求解,枚举两个端点,检查范围内的字符串是否为回文串,时间复杂度
解法二:
DP求解,最长公共子序列变形一下,将字符串倒序进行DP,时间复杂度
解法三:
结果
Your runtime beats 78.46 % of cpp submissions
代码
class Solution {public: string longestPalindrome(string s) { return manacher(s); }private: string manacher(string s){ int len = s.length(); string str = ""; str += '$'; str += '#'; for(int i = 0;i < len;i++){ str += s[i]; str += '#'; } len = str.length(); int *p = new int[len + 1]; int Max = 0, id = 0; for(int i = 1;i < len;i++){ if(Max > i){ p[i] = min(p[2 * id - i], Max - i); } else{ p[i] = 1; } while(str[i + p[i]]== str[i - p[i]]){ p[i]++; } if(i + p[i] > Max){ Max = i+ p[i]; id = i; } } s = ""; Max = 0; int loc = -1; for(int i = 1; i < len;i++){ if(p[i] > Max){ Max = p[i]; loc =i; } } for(int i = loc - Max + 1;i < loc + Max;i++){ if(str[i] != '#') s += str[i]; } delete(p); return s; }};
0 0
- LeetCoder 5. Longest Palindromic Substring
- 5.Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5.Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5.Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5.Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- Git与Repo入门
- D3D中的问题
- 进程间通信系列(8)System V IPC概述
- 使用PowerDesigner画ER图详细教程
- PNP三极管电路简单分析
- LeetCoder 5. Longest Palindromic Substring
- Spark Streaming + Kafka整合实例
- 你今天受骗了吗?
- 打造PHP工程师的VIM
- Hibernate 与 MyBatis的比较
- scriptX打印控件
- 安卓studio默认使用ConstraintLayout
- js之浅谈this
- ogg数据同步停止OGG-00446 Could not find archived log for sequence